Другой вариант - скачать файл apt-get download
, распаковать его dpkg -x
и переместить извлеченные файлы в папку virtualenv:
Пример:
apt-get download python-xyz
предположим, что это приводит к:
./python-xyz_1.2.3-3ubuntu5_amd64.deb
Затем используйте dpkg для извлечения части данных из файла .deb:
dpkg -x python-xyz_1.2.3-3ubuntu5_amd64.deb ./xyz-tmp
Во вновь созданном ./xyz-tmp
каталоге у вас есть все файлы, которые были бы установлены в /
(root), если бы вы использовали apt-get install
.
Предположим, что они:
./xyz-tmp/usr/lib/python2.7/dist-packages/xyz/
./xyz-tmp/usr/lib/python2.7/dist-packages/xyz-1.2.3.egg-info
Вам все еще нужно отобразить подкаталоги (например, dist-packages
vs. site-packages
), и затем вы можете переместить файлы в ваш virtualenv (при условии, что virtualenv /home/user/.virtualenvs/py27
):
mv ./xyz-tmp/usr/lib/python2.7/dist-packages/* /home/user/.virtualenvs/py27/lib/python2.7/site-packages/
По сравнению с моим предыдущим ответом, этот подход имеет то преимущество, что вам не нужно исследовать, какие файлы были установлены, потому что вы можете увидеть их в каталоге извлечения. Это все еще требует сопоставления каталогов между извлеченным архивом и virtualenv.