Inną alternatywą jest pobranie pliku apt-get download
, wyodrębnienie go dpkg -x
i przeniesienie wyodrębnionych plików do virtualenv:
Przykład:
apt-get download python-xyz
załóżmy, że skutkuje to:
./python-xyz_1.2.3-3ubuntu5_amd64.deb
Następnie użyj dpkg, aby wyodrębnić część danych pliku .deb:
dpkg -x python-xyz_1.2.3-3ubuntu5_amd64.deb ./xyz-tmp
W nowo utworzonym ./xyz-tmp
katalogu masz teraz wszystkie pliki, które zostałyby zainstalowane /
(root), gdybyś go użył apt-get install
.
Załóżmy, że są:
./xyz-tmp/usr/lib/python2.7/dist-packages/xyz/
./xyz-tmp/usr/lib/python2.7/dist-packages/xyz-1.2.3.egg-info
Nadal musisz zmapować podkatalogi (np. dist-packages
Vs. site-packages
), a następnie możesz przenieść pliki do swojego virtualenv (zakładając virtualenv /home/user/.virtualenvs/py27
):
mv ./xyz-tmp/usr/lib/python2.7/dist-packages/* /home/user/.virtualenvs/py27/lib/python2.7/site-packages/
W porównaniu z moją poprzednią odpowiedzią, to podejście ma tę zaletę, że nie musisz badać, które pliki zostały zainstalowane, ponieważ możesz je zobaczyć w katalogu rozpakowywania. Nadal wymaga mapowania katalogów między rozpakowanym archiwum a virtualenv.