#python #visual-studio-code #configuration
#питон #visual-studio-код #конфигурация
Вопрос:
У меня есть эта задача в моем launch.json
каталоге в моем проекте:
{ "name": "Api", "type": "python", "request": "launch", "python": "${command:python.interpreterPath}", "module": "myservice.api", "env": { "GEVENT_SUPPORT": "True", "OBJC_DISABLE_INITIALIZE_FORK_SAFETY": "YES", } }
Когда я открываю каталог в VSCode, я могу запустить процесс отладки без проблем. Я просто выбираю интерпретатор python из своего venv, и все работает.
Когда я открываю ту же самую папку в многокорневой рабочей области, она не может импортировать gevent при отладке:
❯ cd /Users/myself/Workspace/git/software/myservice ; /usr/bin/env /Users/myself/Workspace/git/software/myservice/venv/bin/python /Users/myself/.vscode/extensions/ms-python.python-2021.11.1422169775/pythonFiles/lib/python/debugpy/launcher 54265 -- -m myservice.api E 00000.023: Error determining module path for sys.argv Traceback (most recent call last): File "/Users/myself/.vscode/extensions/ms-python.python-2021.11.1422169775/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py", line 303, in run_module spec = find_spec(target_as_str) File "/usr/local/Cellar/python@3.9/3.9.7_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/util.py", line 94, in find_spec parent = __import__(parent_name, fromlist=['__path__']) File "/Users/myself/Workspace/git/software/myservice/myservice/__init__.py", line 1, in lt;modulegt; import gevent.monkey ModuleNotFoundError: No module named 'gevent' Stack where logged: File "/usr/local/Cellar/python@3.9/3.9.7_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/local/Cellar/python@3.9/3.9.7_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 87, in _run_code exec(code, run_globals) File "/Users/myself/.vscode/extensions/ms-python.python-2021.11.1422169775/pythonFiles/lib/python/debugpy/__main__.py", line 45, in lt;modulegt; cli.main() File "/Users/myself/.vscode/extensions/ms-python.python-2021.11.1422169775/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py", line 444, in main run() File "/Users/myself/.vscode/extensions/ms-python.python-2021.11.1422169775/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py", line 309, in run_module log.swallow_exception("Error determining module path for sys.argv") File "/Users/myself/.vscode/extensions/ms-python.python-2021.11.1422169775/pythonFiles/lib/python/debugpy/../debugpy/common/log.py", line 218, in swallow_exception _exception(format_string, *args, **kwargs)
Странно то, что я запускаю это в командной строке вручную:
cd /Users/myself/Workspace/git/software/myservice ; OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES /usr/bin/env /Users/myself/Workspace/git/software/myservice/venv/bin/python -m myservice.api
Тогда все будет работать так, как ожидалось. То же самое, если я выполняю отладку в рабочей области с одной папкой.
Есть ли способ исправить файл launch.json, чтобы отладка python работала в VSCode? Есть ли что-нибудь очевидное, чего мне не хватает?
Я на macOS, я установил python с помощью brew.