Невозможно установить переменную окружения pythonpath от python - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь отладить проект, в котором много дополнительных библиотек добавлено в PYTHONPATH во время выполнения перед запуском файла python.

Мне не удалось добавить эти команды с файлом tasks.json до отладки файла python в коде Visual Studio (см. сообщение Код Visual Studio не может установить пути переменных env до отладки python файла ), поэтому я просто добавляю их через os.system("..") команда

Я только показываю одну из библиотек, добавленных ниже:

# Standard library imports
import os
import sys

os.system("SET PYTHONPATH=D:\\project\\calibration\\pylibrary\\camera")

# Pylibrary imports
from camera import capture

При отладке происходит сбой в строке from camera import capture с:

Exception has occurred: ModuleNotFoundError
No module named 'camera'
  File "D:\project\main.py", line 12, in <module>
    from camera.capture import capture

Я также попытался

os.environ['PYTHONPATH']="D:\\project\\pylibrary\\camera" и все еще получаю ту же ошибку

Почему он не запоминает pythonpath во время выполнения сценария?

Как еще можно определить pythonpath при запуске кода Visual Studio и отладке файла проекта?

Я знаю, что могу добавить переменные pythonpath в env в windows, но он загружает слишком много библиотек, и я хочу, чтобы он только запомните путь при выполнении скрипта python.

Спасибо

1 Ответ

0 голосов
/ 16 апреля 2020

Использование os.system() не будет работать, потому что он запускает новую оболочку cmd.exe и устанавливает env var в этой оболочке. Это не повлияет на переменные процесса python. Присвоение os.environ['PYTHONPATH'] не будет работать, потому что в этот момент ваш python процесс уже кэшировал значение, если таковое имеется, этого env var в переменной sys.path. Решение для

import sys
sys.path.append(r"D:\project\calibration\pylibrary\camera")
...