Я пишу классы Python в пакете, используя VScode. Я хочу добавить родительский каталог этого пакета в путь Python при использовании терминала VScode, чтобы я мог import
пакет (независимо от каталога запускаемого файла).
Я пробовал .env
Файл и настройки рабочего пространства без успеха.
В конечном итоге я хочу запустить doctest для классов, использующих терминал, и для этого терминал должен иметь возможность импортировать пакет.
.env File
У меня есть рабочее пространство. Сначала я попытался добавить файл .env
следующим образом (обратите внимание, что я использую Python 3 Anaconda на Windows ):
PYTHONPATH=C:\\MyPython;${PYTHONPATH}
(я пробовал одинарные и двойные обратные слэши икосая черта, ничего не работает).
Когда я запускаю скрипт (test.py
) в терминале, содержащем это:
print(os.environ.get('PYTHONPATH'))
Я просто возвращаюсь None
.
Я попытался установить общесистемную переменную среды PYTHONPATH в Windows, которая затем появляется, но C: \ MyPython к ней не добавляется. Я не хочу добавлять / изменять системный PYTHONPATH каждый раз, когда открываю другое рабочее пространство!
Настройки рабочего пространства
Затем я попытался добавить настройки рабочего пространства в MyProject.code-workspace
file:
{
"folders": [
{
"path": "C:\\MyPython"
}
],
"settings": {
"terminal.integrated.cwd": "C:\\MyPython",
"terminal.integrated.env.windows": "C:\\MyPython"
}
}
Опять же, это не сработало.
Структура файла
Моя структура файла выглядит следующим образом:
C:\MyPython
.env
MyProject.code-workspace
test.py
Pkg\
__init__.py
Class1.py
Class2.py
Если я использую зеленую кнопку треугольника («Запуск файла в терминале Python») для запуска test.py
, тогда каталог этого файла (C:\MyPython
) добавляется к sys.path
, и все работает (например, import Pkg.Class1
работает).
Однако, если я запускаю Class2.py
(который включает в себя import Pkg.Class1
в коде и doctest), тогда вместо каталога C:\MyPython\Pkg
добавляется sys.path
, и он не может найти и импортировать пакет Pkg
иdoctest
терпит неудачу.
Поэтому я хочу добавить C:\MyPython
к пути python, независимо от каталога запускаемого файла.
Конечно, я мог бы простодобавьте все тесты в test.py
и запустите его, но я действительно хочу запустить doctests в классе, над которым я работаю,Вместо того, чтобы каждый раз запускать все тесты (и переключаться на другой файл, чтобы сделать это).
Кажется, это должно быть легко, но я не могу заставить его работать!
Любые идеи?
PS: я не включил .py код для теста или классов, так как это не имеет отношения к проблеме, это import
, что не удается. В конечном итоге я вижу, что требуемый каталог не появляется ни в sys.path
, ни в os.environ.get('PYTHONPATH')
, и поэтому импорт не выполняется.