Отмените опцию `--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/