Іншою альтернативою є завантаження файлу за допомогою 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
порівняно 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.