Как добавить путь к PYTHONPATH в virtualenv

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

Я попробовал SET PYTHONPATH=... в командной строке virtualenv, но это устанавливает переменную для всей среды.

Как мне это достичь?

Ответ 1

Обычно вы можете ничего не делать с помощью PYTHONPATH с помощью .pth файлов. Просто поместите файл с расширением .pth(любое базовое имя) в вашей папке-каталоге virtualenv, например. lib\python2.7\site-packages, причем абсолютный путь к каталогу, содержащему ваш пакет, является его единственным содержимым.

Ответ 2

Если вы используете virtualenv, вероятно, вы также должны использовать virtualenvwrapper, и в этом случае вы можете использовать add2virtualenv, чтобы добавить пути к пути Python для текущего virtualenv:

add2virtualenv directory1 directory2 …

Ответ 3

Вы также можете попытаться установить символическую ссылку на один из ваших виртуальных серверов.

например. 1) активировать ваш virtualenv 2) запустить python 3) импорт sys и проверка sys.path 4) вы найдете там путь поиска python. Выберите один из них (например, сайт-пакеты) 5) туда и создайте символическую ссылку на свой пакет, например: ln -s path-to-your-package name-with-which-you-you-be-importing

Таким образом вы сможете импортировать его, даже не активируя свой virtualenv. Просто попробуйте: path-to-your-virtualenv-folder/bin/python и импортируйте свой пакет.

Ответ 4

В Python 3.6.4

import sys
import os

print(str(sys.path))

dir_path = os.path.dirname(os.path.realpath(__file__))
print(f"current working dir: {dir_path}")

sys.path.insert(0, dir_path)

Я настоятельно рекомендую вам использовать virtualenv и virtualenvwrapper, чтобы избежать путаницы