Как импортировать глобально установленный пакет в папку virtualenv
Итак, у меня есть папка virtualenv, называемая venv для моего проекта python.
Я могу запустить:
venv/bin/pip install -r requirements.txt
Что устанавливает все требования, которые мне нужны для проекта, кроме одного, M2Crypto. Единственный способ установить его - через apt-get:
apt-get install python-m2crypto
Как я могу добавить этот пакет, установленный через папку apt to venv?
Ответы
Ответ 1
Что я сделал в конце концов:
cp -R /usr/lib/python2.7/dist-packages/M2Crypto /home/richard/hello-project/venv/lib/python2.7/site-packages/
cp -R /usr/lib/python2.7/dist-packages/OpenSSL /home/richard/hello-project/venv/lib/python2.7/site-packages/
Ответ 2
--system-site-packages
предоставляет доступ к глобальным модулям пакетов сайтов в виртуальную среду.
вы можете сделать:
$ sudo apt-get install python-m2crypto
$ virtualenv env --system-site-packages
... и тогда у вас будет доступ к m2crypto
(наряду со всеми другими общесистемными установленными пакетами) внутри вашего virtualenv.
Ответ 3
toggleglobalsitepackages
переключит доступ к общесистемному site-packages
.
Примечание. Для получения этой команды вам необходимо pip install virtualenvwrapper
; ваниль virtualenv
не включает его. С помощью virtualenvwrapper
вы также получите очень полезные команды mkvirtualenv
и rmvirtualenv
.
Ответ 4
venv/bin/pip install -I M2Crypto
-I
заставляет его также быть установленным в virtualenv, даже если он уже установлен глобально.
Ответ 5
Самое простое решение. В каталоге виртуальной среды отредактируйте файл pyvenv.cfg и установите параметр include-system-site-packages = true Сохранить файл. Установленные глобально модули появятся при следующей активации (источник /bin/активация) вашей среды. Это можно проверить через "список пипсов"
Наслаждаться.