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

Debug File (Ctrl+F5) does not respect working directory in Run configuration #22496

Open
7 of 10 tasks
roteiro opened this issue Sep 12, 2024 · 0 comments
Open
7 of 10 tasks

Comments

@roteiro
Copy link

roteiro commented Sep 12, 2024

Issue Report Checklist

  • Searched the issues page for similar reports
  • Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
  • Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
  • Could not reproduce inside jupyter qtconsole (if console-related)
  • Tried basic troubleshooting (if a bug/error)
    • Restarted Spyder
    • Reset preferences with spyder --reset
    • Reinstalled the latest version of Anaconda
    • Tried the other applicable steps from the Troubleshooting Guide
  • Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description

Consider the following project structure of the folder testproject

.
├── .python-version
├── .spyproject
│   └── config
├── .venv
│   ├── .gitignore
│   ├── CACHEDIR.TAG
│   ├── Lib
│   ├── pyvenv.cfg
│   ├── Scripts
│   └── share
├── pyproject.toml
├── README.md
├── scripts
│   └── foo.py
└── uv.lock

The python interpreter is set to path/to/testproject/.venv/Scripts/python.exe. I want to run foo.py from the dir testproject , therefore, i set the following run configuration under Run->Configuration per File
image

Content of foo.py

if __name__ == "__main__":
    print("test")
    raise ValueError

What steps reproduce the problem?

I tried two different ways of running the file:
a) Run foo.py with F5
b) Debug foo.py with Ctrl+F5

What is the expected output? What do you see instead?

a)
I expect to to automatically enter the debugger due to the run configuration and the deliberate ValueError. This basically happens, except for the unexpected *** NameError: name '_pdbcmd_print_frame_status' is not defined

Full output of a)

In [1]: %runfile C:/Users/path/to/testproject/scripts/foo.py --wdir C:/Users/path/to/testproject/testproject --post-mortem
test
Traceback (most recent call last):

  File ~\path\to\testproject\.venv\Lib\site-packages\spyder_kernels\customize\utils.py:209 in exec_encapsulate_locals
    exec_fun(compile(code_ast, filename, "exec"), globals)

  File c:\users\path\to\testproject\testproject\scripts\foo.py:3
    raise ValueError

ValueError

****************************************
Entering post mortem debugging...
****************************************
*** NameError: name '_pdbcmd_print_frame_status' is not defined

IPdb [1]:

b) I expect the execution with the wdir set to the project root and the lauch of the debugger. However, the Working directory settings seem to be ignored for Ctrl+F5, since the working directory is changed to the folder scripts
Full output of b)

In [3]: %debugfile C:/Users/path/to/testprojct/testproject/scripts/foo.py --wdir
*** NameError: name '_pdbcmd_print_frame_status' is not defined

IPdb [1]: 

Bonus Question

Is it correct that at the moment, there is no possibility to set the global run configuration such that the wdir is relative to the currently opened Spyder project?

Versions

  • Spyder version: 6.0.0 (standalone)
  • Python version: Python 3.11.9 64-bit
  • Qt version: Qt 5.15.8
  • PyQt version: PyQt5 5.15.9
  • Operating System name/version: Windows 10 (AMD64)

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.7 (OK)
zmq >=24.0.0                     :  26.2.0 (OK)

# Optional:
cython >=0.21                    :  3.0.11 (OK)
matplotlib >=3.0.0               :  3.9.2 (OK)
numpy >=1.7                      :  2.1.0 (OK)
pandas >=1.1.1                   :  2.2.2 (OK)
scipy >=0.17.0                   :  1.14.1 (OK)
sympy >=0.7.3                    :  1.13.2 (OK)

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

No branches or pull requests

1 participant