Согласно этому ответу , apt-get
устанавливает пакеты в масштабе всей системы (из канонических) и pip
может устанавливать пакеты только в virtualenv (из Pypi).
Однако мне нужно установить пакет в virtualenv, который доступен только через apt-get
, то есть не размещен на Pypi.
Как мне это сделать?
apt
software-installation
pip
Роман
источник
источник
Ответы:
Другой вариант - скачать файл
apt-get download
, распаковать егоdpkg -x
и переместить извлеченные файлы в папку virtualenv:Пример:
предположим, что это приводит к:
Затем используйте dpkg для извлечения части данных из файла .deb:
Во вновь созданном
./xyz-tmp
каталоге у вас есть все файлы, которые были бы установлены в/
(root), если бы вы использовалиapt-get install
.Предположим, что они:
Вам все еще нужно отобразить подкаталоги (например,
dist-packages
vs.site-packages
), и затем вы можете переместить файлы в ваш virtualenv (при условии, что virtualenv/home/user/.virtualenvs/py27
):По сравнению с моим предыдущим ответом, этот подход имеет то преимущество, что вам не нужно исследовать, какие файлы были установлены, потому что вы можете увидеть их в каталоге извлечения. Это все еще требует сопоставления каталогов между извлеченным архивом и virtualenv.
источник
Все, что нужно для virtualenv - это наличие файлов пакета в поддереве вашего virtualenv. Так что, пока вы можете определить, какие файлы были установлены в системный Python через apt-get, вы можете копировать их в ваш virtualenv. Это включает в себя файлы в каталоге пакетов сайта, а также в других местах вашего поддерева Python (например, скрипты).
Гипотетический пример:
Предположим, он устанавливает пакет с именем «xyz» в вашу систему Python 2.7, вы можете получить это:
Скопируйте файлы, связанные с пакетом "xyz", в ваш virtualenv (при условии, что virtualenv
/home/user/.virtualenvs/py27
):Трудность заключается в том, что (1) при определении того, какие файлы принадлежат конкретному пакету, и (2) при отображении соответствующих подкаталогов между системным Python и virtualenv (например,
dist-packages
противsite-packages
в примере выше).Если у кого-то есть больше опыта с этим, пожалуйста, прокомментируйте.
источник