-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
interactive plot window not showing under wayland in debug mode for matplotlib=3.9 #1633
Comments
There's specific code in pydevd (the base of debugpy) that likely is out of date with matplotlib: https://github.com/fabioz/PyDev.Debugger/blob/54f8db469c2d8c31635db7cc59a10bc8dab76057/pydevd.py#L695 |
Proposed this fix: fabioz/PyDev.Debugger#289. Curious to know if it solves most of the issues listed here. |
Thank you for the proposed fix, sadly it did not help for me. I could not notice any differences (and I verified that I modified the correct file; raising a ValueError led to the expected result). |
same issue here. any updated guidance on how to fix? I am using python 3.12.1 with up-to-date VS Code for windows, and updated to the latest debugpy 1.8.11 |
There's likely a need to update the matplotlib code that pydevd has. This code here: |
I had this same issue with Matplotlib >=3.9 on VSCode debug mode for multiple Python versions. Running It seems to be a problem with the debuggers not interacting correctly with matplotlib anymore, see: matplotlib/matplotlib#28449 (comment) |
This issue should be fixed in the latest build of debugpy. It should ship with VS code in a future version of the Python Debugger Extension or you can install your own debugpy from pypi |
Take that back, our release to PyPI failed when it looked like it succeeded. Fix will be coming after we resolve that problem. |
PyPI release succeeded. v1.8.12 is now available |
Thank you! I can confirm that plots created in a python file (BEFORE hitting a breakpoint and entering debug mode) are appearing and interacting normally. However, I am still not able to create plots from the VSCode Debug Console like I have been able to in previous versions of python/debugpy. The behavior is the same as what's described in the issue - an empty figure window and wayland appears but is "Not responding" and requires terminating python to unfreeze. Steps to reproduce
Place breakpoint on pass, then in the VSCode Debug Console try to plot |
How did you update the debugger used by vscode? This fix isn't in VS code yet, you'd have to manually copy debugpy into the extension folder. |
That works for me inside VS code if I manually update the bits it uses. |
Ah, gotcha. I had simply updated the debugpy dependency in my project env (using poetry). I now have replaced the |
I tried to replicate this solution on VSCode on Ubuntu 20.04 from matplotlib import pyplot as plt
import debugpy
import os
def main():
print(os.path.abspath(debugpy.__path__[0]))
print(debugpy.__version__)
pass
if __name__ == '__main__':
main() while on breakpoint on Did I miss anything? |
That sounds like it should work. It should print out something like this on the command line:
If that didn't happen, then debugpy didn't detect matplotlib being used. Your exact code works fine for me. I just do this in the debug console: plt.plot() |
Environment data
VS Code with Python Debugger v2024.8.0
Actual behavior
Try debugging the following code:
If the break point is at
pass
, where Debugger skipped entering the interactive mode, the figure is shown normally.But if there are break points earlier, e.g., add a break point at
plt.plot...
, then debug and go though until we stop atpass
,the figure won't be shown, with a wayland icon/window showing in the taskbar, but an invisible figure window.
Turing on interactive mode manually makes the plot invisible too (set break point at
pass
and debug):Expected behavior
We expect the interactive plot window be shown as a normal window and response to resize/maximize etc.
Steps to reproduce:
mamba create -n 'test' matplotlib=3.9 qt-wayland
QT_QPA_PLATFORM=wayland;xcb
in/etc/environment
orlaunch.json
Additional information:
QtAgg
backend #858 et al.,qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
whenplt.show()
.The text was updated successfully, but these errors were encountered: