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 11.0.3 (2023-10-30)
- The mylyn integration was removed as it wasn't really being distributed anymore but was still on the update site.
Release 11.0.2 (2023-10-29)
- Newer version of typeshed integrated (from typing import override is now recognized).
- It's now possible to specify vmargs in the python interpreter.
- For Python 3.11 onwards -Xfrozen_modules=off will now be used by default.
Release 11.0.1 (2023-10-22)
- Java 17 is now the minimum java version supported (same as Eclipse 2022-09 onwards).
- A few bugfixes (related to Python 3.12 support).
- Release is now done with a new code signing certificate.
Release 11.0.0 (2023-10-08)
- Preliminary support for Python 3.12
- Debugger now supports Python 3.12.
- Important: the new f-string format is still not supported.
- Code Analysis:
- Now analyzes type annotations defined as strings.
- Fixed case where a type annotation is defined as a string but the actual type only occurs later in the file.
- Fixed issue where an annotation referencing a class defined later on in the file would be reported as an error.
- Imports found inside a typing.TYPE_CHECKING will be considered undefined if the scope that uses it requires it to be available when not type-checking.
- Properly consider that a method containing ... is an empty method and don't report unused arguments in it.
- Properly consider that attributes in enum subclasses are actually instances of the class where they're defined.
- Docstring generation:
- Fixed issue where self could be added to the arguments when auto-generating docstrings (with Ctrl+1 > Make Docstring in def line).
- Type inference:
- Fixed issue where Pathlib with a __div__ didn't offer completions properly.
- Better support when using cython 3.0 to generate the AST.
- ruff integration:
- Fixed issue when an empty output is given.
- If some error happens in the integration a better error message is given.
- Isort integration: now always uses the isort found in the Python environment or an external executable.
- Performance improvement: tooltips are no longer clipped based on maxWidth. Fixes #PyDev-1233: Eclipse IDE freezes when using a variable with a very long base64 value.
- Pretty-printing nonlocal now works.
- In the outline page overload methods now have a different decoration and it's possible to hide them.
- Fixed syntax Error with case None. #PyDev-1232
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