inducer / pudb

Full-screen console debugger for Python
https://documen.tician.de/pudb/
Other
2.99k stars 229 forks source link

local module imports fail after os.chdir #557

Closed inducer closed 2 years ago

inducer commented 2 years ago

Discussed in https://github.com/inducer/pudb/discussions/556

Originally posted by **raphCode** September 20, 2022 **Describe the bug** After `os.chdir()` local modules cannot be imported when run under pudb and raise `ModuleNotFoundError`. **To Reproduce** - create files: - `some_module.py` (empty) - `some_folder/` (empty directory) - `test.py` content as follows: ```python import os os.chdir("some_folder") import some_module ``` - run `pudb3 test.py` - import of `some_module` fails **Expected behavior** Module is imported successfully, no `ModuleNotFoundError` is raised. **Additional context** When run under the normal python interpreter this works. The reason seems to be that `sys.path` is normally populated with an absolute path to the directory from which python is run. When run under pudb, it is only populated with the empty string which does refer to the current directory, which is wrong after the `os.chdir()`. **Versions** Python 3.10.7 pudb:pudb3 v2022.1.2
inducer commented 2 years ago

@raphcode Could you try #558 and see if that does what you'd like?

raphCode commented 2 years ago

I gave it a quick spin and it looks good! Thanks for the quick fix :)

I installed pudb from the main branch in my venv, so I will continue to test it and come back if I notice any further issues.