What is PyDev?
PyDev is a Python IDE for Eclipse, which may be used in Python, Jython and IronPython development.
It comes with many goodies such as:
For more details on the provided features, check the Features Matrix.
First time users are strongly advised to read the Getting started guide which explains how to properly configure PyDev.
The recommended way of using PyDev is bundled in LiClipse, which provides PyDev builtin as well as
LiClipse you directly support the development of PyDev).
If you'd like to analyze the performance of your programs, check PyVmMonitor.
Release 10.2.1 (2023-07-02)
- Fixed compatibility with Eclipse 4.28 (2023-06) as it broke backward compatibility.
- i.e.: Fix for "java.lang.NoClassDefFoundError: org/eclipse/ui/views/navigator/NavigatorDragAdapter"
Release 10.2.0 (2023-06-25)
- Ruff is now supported. (#PyDev-1225)
- Forward declaration in the format: Optional['ClassName'] is now supported in the inference engine. (#PyDev-1217)
- Fixed issue parsing match statement. (#PyDev-1222)
- Properly recognize **rest variable when unpacking in match. (#PyDev-1218)
- Fixed case where match was not recognized as a variable name. (#PyDev-1210)
- Black formatting discrepancies with .pyi files. (#PyDev-1224)
- If a TODO message is too big, it is now clipped.
Release 10.1.4 (2023-04-15)
- Improvements to make the debugger work in Python 3.12 (note: still a work in progress).
- The conda activate location is now found on Mac OS.
- Changes so that PyDev doesn't change itself while running to abide to Mac OS rule that programs should not change after installed.
- i.e.: don't write $py.class files and save jython cache dir in user directory.
Release 10.1.3 (2023-01-23)
- Critical bugfix: MyPy integration: MYPYPATH did not contain source folders when requested.
Release 10.1.2 (2023-01-21)
- PyLint, Mypy and Flake8 are now executed with python -m when option to search in interpreter is used.
- Fixed Stack Overflow when typing.cast() was used with a class that could not be resolved.
- Fixed issue where values for typing.cast() could be gotten from the wrong scope.
- Properly synchronize threads when computing typesched information.
Release 10.1.1 (2023-01-09)
- Critical bugfix: Analysis preferences are now properly initialized again.
Release 10.1.0 (2023-01-07)
- All analysis settings are now loaded and saved from the org.python.pydev scope.
- Contents from .settings/org.python.pydev.analysis.yaml must now be moved to the .settings/org.python.pydev.yaml file.
- Fixes issue where the configurations from PyLint weren't being picked up.
- pydevd updated to 2.9.5
- Handle OSError when listing to get path with real case
- More information is shown if formatting with black fails.
- If conda lists the same env more than once, show it only once.
- When configuring interpreter, detect if it's a conda env and mark to activate by default.
Release 10.0.2 (2022-12-10)
- Fixed KeyAssistDialog (activated on Ctrl+2) which was using deprecated construct no longer available in 4.26 (2022-12).
- pydevd updated to 2.9.3
- Properly allow setting locals to None when evaluating.
- Allow using globals() when evaluating.
- If gevent tries to disable the tracing prevent it.
- On Python 3.11 _fork_exec is now properly monkey-patched for subprocesses.
- Strings inside containers are no longer shown as special variables.
Release 10.0.1 (2022-10-28)
- Fixed issue parsing exception groups on Python 3.11.
- Fixed issue which prevented JDT (Java) files from being opened in the Project Explorer.
- A better error message is shown when using an unsupported Python version.
- Updated Linux DLLs to fix PyInt_FromLong not found in Python 3.11.
- Consider that paths are not case sensitive on Mac OS.
Release 10.0.0 (2022-10-01)
- Only Python 3.6 onwards is now supported
- Python 3.11 is now supported
- Python 2.7 support is now dropped (please use PyDev 9.3.0 if you need Python 2.7).
- Type inference
- PyDev will now use typeshed by default.
- It will still fallback to builtins introspection when needed.
- Many improvements were done in the area which should result in better code-completion and find definition in general.
- When evaluating slow repr a note is shown related to the environment variable which should be used to customize it.
- Silence warning given when debugging gevent.
- It's now possible to use pydevd in DAP mode directly.
- All the items in tuples and lists can now be seen when expanding.
- Chained exception frames are shown in the in stack.
- The cause message on chained exceptions is properly shown.
- ctypes arrays are properly enumerated when debugging.
- The debugger is cleared after fork in non-python process.
- Top-level async is supported when evaluating in debugger/console.
- Step in/step over support for IPython.
- "PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING" = "1" needs to be set in the environment when debugging IPython.
- Properly stop at line 1 in frame eval mode.
- Properly consider that argv may be None.
- Use tokenize.open to open file stream (to avoid EncodingWarnings with PYTHONWARNDEFAULTENCODING).
- Protect against exception in linecache.getline.
- Auto-attach to subprocess with .zip targets.
- It's now possible to resolve symlinks when sending paths to the client.
- Warnings when evaluating in repl are shown.
- Errors with conditional breakpoints are clearer.
- Breakpoint log messages are now printed when stepping too.
- frame.f_locals is no longer called multiple times when assigning locals after evaluation.
- If pandas has lower defaults for repr, use them.
- Handle case where client may send files with different casing.
- Fixed segfault attaching debugger to a running process.
Release 9.3.0 (2022-03-05)
- Fixed issue where the variable children wouldn't expand correctly.
- Fixed some case where automatic connection to subprocesses wouldn't work.
- Debugging with Pandas is much improved with the addition of some custom converters.
- Opt-in support to show paused greenlets by setting GEVENT_SHOW_PAUSED_GREENLETS=1.
- Support for newer versions of gevent.
- Information on user settings paths is cached to fix issue with slow debugging using pipenv project.
- A warning is shown if getting some attribute / getting its repr is slow.
- Interactively inspect matplotlib plots when the QtAgg backend is used.
- Support for PySide2.
- Better error messages in case Python 3.11 frozen modules are being used.
- Note: this will be the last debugger version supporting Python 2.7.
- Newer releases will target only Python 3.6 onwards.
- Fix for case where indexing could fail to account for namespace folders.
View release notes for previous releases