Skip to content
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

name '_pdbcmd_print_frame_status' is not defined message when debugging #22500

Open
paulgomme opened this issue Sep 13, 2024 · 9 comments · May be fixed by spyder-ide/spyder-kernels#513
Open

Comments

@paulgomme
Copy link

Description

What steps will reproduce the problem?

Click on the "Debug file" icon. Error message:

*** NameError: name '_pdbcmd_print_frame_status' is not defined

Versions

  • Spyder version: 6.0.0 (pip)
  • Python version: 3.12.5 64-bit
  • Qt version: 5.15.14
  • PyQt5 version: 5.15.11
  • Operating System: Linux-6.10.8-200.fc40.x86_64-x86_64-with-glibc2.39

Dependencies

# Mandatory:
aiohttp >=3.9.3                  :  3.10.5 (OK)
asyncssh >=2.14.0,<3.0.0         :  2.17.0 (OK)
atomicwrites >=1.2.0             :  1.4.1 (OK)
chardet >=2.0.0                  :  5.2.0 (OK)
cloudpickle >=0.5.0              :  3.0.0 (OK)
cookiecutter >=1.6.0             :  2.6.0 (OK)
diff_match_patch >=20181111      :  20230430 (OK)
github >=2.3.0                   :  2.4.0 (OK)
importlib_metadata >=4.6.0       :  8.5.0 (OK)
intervaltree >=3.0.2             :  3.1.0 (OK)
IPython >=8.13.0,<9.0.0,!=8.17.1 :  8.27.0 (OK)
jedi >=0.17.2,<0.20.0            :  0.19.1 (OK)
jellyfish >=0.7                  :  1.1.0 (OK)
jsonschema >=3.2.0               :  4.23.0 (OK)
keyring >=17.0.0                 :  25.3.0 (OK)
nbconvert >=4.0                  :  7.16.4 (OK)
numpydoc >=0.6.0                 :  1.8.0 (OK)
parso >=0.7.0,<0.9.0             :  0.8.4 (OK)
pexpect >=4.4.0                  :  4.9.0 (OK)
pickleshare >=0.4                :  0.7.5 (OK)
psutil >=5.3                     :  6.0.0 (OK)
pygments >=2.0                   :  2.18.0 (OK)
pylint >=3.1,<4                  :  3.2.7 (OK)
pylint_venv >=3.0.2              :  3.0.3 (OK)
pyls_spyder >=0.4.0              :  0.4.0 (OK)
pylsp >=1.12.0,<1.13.0           :  1.12.0 (OK)
pylsp_black >=2.0.0,<3.0.0       :  2.0.0 (OK)
pyuca >=1.2                      :  1.2 (OK)
qdarkstyle >=3.2.0,<3.3.0        :  3.2.3 (OK)
qstylizer >=0.2.2                :  0.2.3 (OK)
qtawesome >=1.3.1,<1.4.0         :  1.3.1 (OK)
qtconsole >=5.6.0,<5.7.0         :  5.6.0 (OK)
qtpy >=2.4.0                     :  2.4.1 (OK)
rtree >=0.9.7                    :  1.3.0 (OK)
setuptools >=49.6.0              :  74.1.2 (OK)
sphinx >=0.6.6                   :  8.0.2 (OK)
spyder_kernels >=3.0.0,<3.1.0    :  3.0.0 (OK)
superqt >=0.6.2,<1.0.0           :  0.6.7 (OK)
textdistance >=4.2.0             :  4.6.2 (OK)
three_merge >=0.1.1              :  0.1.1 (OK)
watchdog >=0.10.3                :  5.0.2 (OK)
xdg >=0.26                       :  0.28 (OK)
yarl >=1.9.4                     :  1.11.1 (OK)
zmq >=24.0.0                     :  26.2.0 (OK)

# Optional:
cython >=0.21                    :  None (NOK)
matplotlib >=3.0.0               :  3.9.2 (OK)
numpy >=1.7                      :  2.1.1 (OK)
pandas >=1.1.1                   :  2.2.2 (OK)
scipy >=0.17.0                   :  1.14.1 (OK)
sympy >=0.7.3                    :  None (NOK)
@EBurtonRod
Copy link

Yes, I'm getting this too.

I am finding that that this message appears when I do any of the following:

  • When I start the debugger (as paulgomme mentioned in the original post above).
  • When a breakpoint() statement is encountered (which launches the debugger).
  • When debugging, and I click "Execute current line", "Continue execution until next breakpoint", "Step into function or method", "Execute until function or method returns", etc. (In other words, the message appears once for each time I press any of these buttons.)

While these messages are appearing on the console, I am finding that the debugger is still generally working for me apart from that.

@ccordoba12
Copy link
Member

Hey @paulgomme and @EBurtonRod, thanks for reporting. Are you running Spyder in Python 3.12 but connected to another interpreter that runs Python 3.11 or less?

That could be the cause of this problem given that _pdbcmd_print_frame_status is only available in Python 3.12.

@ccordoba12 ccordoba12 self-assigned this Sep 19, 2024
@ccordoba12 ccordoba12 changed the title Problem debugging name '_pdbcmd_print_frame_status' is not defined message when debugging Sep 19, 2024
@EBurtonRod
Copy link

No, I don't think so: in my case I'm running Spyder from an environment with Python 3.12.5 (details below) and I'm connected to an interpreter that is also using Python 3.12.5. (Package list in the attached file: console environment.txt )

One thing I've noticed is that in the list below, cython and sympy seem to have warnings of "None (NOK)". Given that they are optional dependencies, maybe this isn't significant, I'm not sure.

Versions

  • Spyder version: 6.0.0 (conda)
  • Python version: 3.12.5 64-bit
  • Qt version: 5.15.8
  • PyQt5 version: 5.15.9
  • Operating System: Windows-10-10.0.19045-SP0

Dependencies:

# Mandatory:
aiohttp >=3.9.3                  :  3.10.5 (OK)
asyncssh >=2.14.0,<3.0.0         :  2.17.0 (OK)
atomicwrites >=1.2.0             :  1.4.1 (OK)
chardet >=2.0.0                  :  5.2.0 (OK)
cloudpickle >=0.5.0              :  3.0.0 (OK)
cookiecutter >=1.6.0             :  2.6.0 (OK)
diff_match_patch >=20181111      :  20230430 (OK)
github >=2.3.0                   :  2.4.0 (OK)
importlib_metadata >=4.6.0       :  8.4.0 (OK)
intervaltree >=3.0.2             :  3.1.0 (OK)
IPython >=8.13.0,<9.0.0,!=8.17.1 :  8.27.0 (OK)
jedi >=0.17.2,<0.20.0            :  0.19.1 (OK)
jellyfish >=0.7                  :  1.1.0 (OK)
jsonschema >=3.2.0               :  4.23.0 (OK)
keyring >=17.0.0                 :  25.3.0 (OK)
nbconvert >=4.0                  :  7.16.4 (OK)
numpydoc >=0.6.0                 :  1.8.0 (OK)
parso >=0.7.0,<0.9.0             :  0.8.4 (OK)
pexpect >=4.4.0                  :  4.9.0 (OK)
pickleshare >=0.4                :  0.7.5 (OK)
psutil >=5.3                     :  6.0.0 (OK)
pygments >=2.0                   :  2.18.0 (OK)
pylint >=3.1,<4                  :  3.2.7 (OK)
pylint_venv >=3.0.2              :  3.0.3 (OK)
pyls_spyder >=0.4.0              :  0.4.0 (OK)
pylsp >=1.12.0,<1.13.0           :  1.12.0 (OK)
pylsp_black >=2.0.0,<3.0.0       :  2.0.0 (OK)
pyuca >=1.2                      :  1.2 (OK)
qdarkstyle >=3.2.0,<3.3.0        :  3.2.3 (OK)
qstylizer >=0.2.2                :  0.2.3 (OK)
qtawesome >=1.3.1,<1.4.0         :  1.3.1 (OK)
qtconsole >=5.6.0,<5.7.0         :  5.6.0 (OK)
qtpy >=2.4.0                     :  2.4.1 (OK)
rtree >=0.9.7                    :  1.3.0 (OK)
setuptools >=49.6.0              :  73.0.1 (OK)
sphinx >=0.6.6                   :  8.0.2 (OK)
spyder_kernels >=3.0.0,<3.1.0    :  3.0.0 (OK)
superqt >=0.6.2,<1.0.0           :  0.6.7 (OK)
textdistance >=4.2.0             :  4.6.2 (OK)
three_merge >=0.1.1              :  0.1.1 (OK)
watchdog >=0.10.3                :  5.0.1 (OK)
yarl >=1.9.4                     :  1.9.8 (OK)
zmq >=24.0.0                     :  26.2.0 (OK)

# Optional:
cython >=0.21                    :  None (NOK)
matplotlib >=3.0.0               :  3.9.1 (OK)
numpy >=1.7                      :  1.26.4 (OK)
pandas >=1.1.1                   :  2.2.2 (OK)
scipy >=0.17.0                   :  1.14.1 (OK)
sympy >=0.7.3                    :  None (NOK)

@ccordoba12
Copy link
Member

No, I don't think so: in my case I'm running Spyder from an environment with Python 3.12.5

Ok, thanks for letting us know about it. But good news is that this error was also shown by our test suite when updating it to use Python 3.12 (see #22541).

So, we'll try to address this problem in our 6.0.2 version, to be released in a month or so.

One thing I've noticed is that in the list below, cython and sympy seem to have warnings of "None (NOK)". Given that they are optional dependencies, maybe this isn't significant, I'm not sure.

Yes, that's not relevant.

@impact27
Copy link
Contributor

impact27 commented Oct 4, 2024

Fixed in spyder-ide/spyder-kernels#513

@aschirma
Copy link

aschirma commented Oct 5, 2024

Has Spyder 6.0.2 version been released? I am also getting this error when trying to debug.

@ccordoba12
Copy link
Member

No, it hasn't. A simple solution is to downgrade to Python 3.12.4 (the bug is only present in 3.12.5 or newer).

@paulgomme
Copy link
Author

I just upgraded to Spyder 6.0.2. I'm still getting the error

*** NameError: name '_pdbcmd_print_frame_status' is not defined

I'm running python 3.12.7. I tried downgrading to 3.12.4 (pip install python==3.12.4), but pip tells me that it can't find a version satisfying the requirements.

On the good side: the error doesn't affect debugging.

I'm also glad to see that all the debug icons now display once one starts debugging.

@ccordoba12
Copy link
Member

ccordoba12 commented Nov 1, 2024

@paulgomme, we couldn't fix this problem on time for 6.0.2, sorry. It will be for 6.0.3 though.

And you can't change the Python version with pip. For that you either need to create an environment with conda, mamba or pixi; or remove your current installation and download an older installer from python.org.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants