Верните параметр `--no-site-packages` с помощью virtualenv - PullRequest
118 голосов
/ 30 июля 2010

Я создал virtualenv, используя опцию --no-site-packages, и установил множество библиотек.Теперь я хотел бы отменить опцию --no-site-packages и использовать также глобальные пакеты.

Можно ли это сделать без воссоздания virtualenv?

Точнее:

Интересно, что именно точно происходит при создании virtualenv с использованием опции --no-site-packages, в отличие от того, чтобы не использовать эту опцию.

Если я знаю, что происходит, тогда я могу понятьотменить это.

Ответы [ 4 ]

155 голосов
/ 30 июля 2010

Попробуйте удалить (или переименовать) файл no-global-site-packages.txt в папке Lib в вашей виртуальной среде.

Где venv - это имя вашей виртуальной среды, а python3.4 соответствует любой версии Python, например:

$ rm venv/lib/python3.4/no-global-site-packages.txt

А если вы передумаете и захотите вернуть ее обратно:

$ touch venv/lib/python3.4/no-global-site-packages.txt
12 голосов
/ 29 октября 2015

При использовании virtualenvwrapper для управления virtualenvs вы можете использовать функцию оболочки toggleglobalsitepackages для переключения между использованием и отсутствием пакетов сайта.

10 голосов
/ 05 декабря 2016

По крайней мере для Python 3.5.2, в корне каталога virtualenv есть файл pyvenv.cfg.Все, что вам нужно сделать, это изменить include-system-site-packages флаг с false на true:

home = /usr/bin
include-system-site-packages = false  # <- change this to "true"
version = 3.5.2
2 голосов
/ 30 июля 2010

Попробуйте добавить символическую ссылку между /virtualenv_root/lib/ и /path/to/desired/site-packages/

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