Неправильный текущий рабочий каталог при запуске кода Python и расширения jupyter в vscode - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь запустить код Python, используя расширение jupyter в vscode здесь

У меня открыто рабочее пространство в этом месте / Пользователи / Пользователь / Документы / Когда я пытаюсь запуститьследующий код в файле с именем test.py в дочернем каталоге, текущий рабочий каталог устанавливается на уровне рабочего пространства, а не файла.Можно ли изменить настройку для использования cwd файла, а не рабочей области?Я не могу найти его в settings.json, а «cwd» в launch.json кажется применимым только для отладки.

Расположение файла: /Users/user/Documents/python_code/test.py

#%%
import os
print(os.getcwd())

Ожидаемый вывод: / Users / user / Documents / python_code /

Фактический вывод: / Users / user / Documents /

При запуске того же кода через терминал он печатает ожидаемый результат, поэтому проблема, похоже, связана с расширением jupyter

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Для любой конкретной папки / рабочей области, которую вы открываете в VS Code, вы можете использовать параметр notebookFileRoot, чтобы задать конкретный каталог абсолютного пути, чтобы всегда задавать рабочий каталог Jupyter при запуске интерактивного окна с открытой папкой.

Всегда открытие в местоположении файла (без необходимости указывать для notebookFileRoot абсолютный путь к папке) не поддерживается с помощью параметра notebookFileRoot.Переменные VSCode, такие как $ {fileDirname}, относятся к файлам конфигурации задачи и отладки (launch.json и task.json).Мы специально добавили код для распознавания $ {workspaceFolder} для нашей страницы настроек, но мы не распознаем другие переменные VSCode.

Если вы хотите, чтобы здесь был элемент github, который предложил эту функцию.Вы можете подписаться на это или проголосовать, если хотите добавить эту функцию.https://github.com/Microsoft/vscode-python/issues/4441

0 голосов
/ 18 февраля 2019

Есть настройка python.dataScience.notebookFileRoot, которая, насколько я понимаю, должна достигать ожидаемого поведения при установке ее на ${fileDirname}.См. исходный код .

Однако в моем случае это не работает.Может быть, ошибка?

Обратите внимание, что вывод запуска скрипта из терминала зависит от вашей рабочей директории терминала!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...