Указание нескольких значений PYTHONPATH в MinGW

92
11

Скажем, у меня есть файл (foo.py), который печатает sys.path:

# from path.to.folder import foo
# from another.path.to.folder import bar

import sys

for p in sys.path:
print(p)

Моя проблема заключается в том, что вы раскомментируете операторы import и запускаете файл через MingW64 (в моем случае, Git Bash). Python не сможет правильно найти модули, что ImportError к ImportError.

Запуск файла с комментариями по импорту дает этот результат:

user@host MINGW64 /
$ export PYTHONPATH="C:\path\to\folder:C:\another\path\to\folder"
$ python foo.py

C:\some\path
C:\path\to\folder:C:\another\path\to\folder
C:\Windows\system32\python27.zip
C:\Python\2.7.12\DLLs
C:\Python\2.7.12\lib
C:\Python\2.7.12\lib\plat-win
C:\Python\2.7.12\lib\lib-tk
C:\Python\2.7.12

Проблема заключается в том, что MinGW не интерпретирует export PYTHONPATH="C:\path\to\folder:C:\another\path\to\folder" как два отдельных пути. Он передает один неправильный путь к Python, который не знает, что с ним делать.

Документация по конверсии пути MinGW Posix, похоже, не охватывает этот сценарий, но я думаю, что это невероятно распространенный вариант использования.

Как установить переменную окружения PYTHONPATH в MinGW так, чтобы она отправила два пути к Python?

спросил(а) 2018-07-30T23:01:00+03:00 2 года, 4 месяца назад
1
Решение
92

Оказывается, документация по конверсии пути Posix охватывает этот случай:

Аргументы, содержащие a; считаются списками путей Windows и не конвертируются.

Преобразование средней двоеточия в точку с запятой устраняет проблему:

export PYTHONPATH="C:\path\to\folder;C:\another\path\to\folder"

ответил(а) 2018-07-30T23:12:00+03:00 2 года, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема