Отмените опцию `--no-site-packages` с virtualenv

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

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

Точнее:

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

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

Ответ 1

Попробуйте удалить (или переименовать) файл 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

Ответ 2

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

Ответ 3

Как минимум для 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

Ответ 4

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