Python - ręcznie zainstaluj pakiet za pomocą virtualenv

84

Mam program w języku Python, który chcę zainstalować w moim virtualenv - jest to pakiet zip, który muszę rozpakować, a następnie uruchomić program setup.py - ale moje pytanie dotyczy bardziej sposobu umieszczenia tych rozpakowanych plików w moim virtualenv, aby pakiet zostanie zainstalowany w folderze pakietów witryn virtualenv?

Mogę również zainstalować z poziomu mojego virtualenv za pomocą pip install <package name>, ale z jakiegoś powodu pakiet, który pobiera PIP, jest nieaktualny.

A więc - czy ktoś może mi powiedzieć kilka prostych kroków ręcznej instalacji pakietu?

Do tej pory mam podstawowe polecenia do załadowania Virtualenv:

-bash-3.2$ source ~/.bashrc
-bash-3.2$ workon test
(test)-bash-3.2$ //Now I'm working on my virtualenv, but where do I go after this??

A więc - czy ma znaczenie, gdzie rozpakuję pakiet / program Pythona - czy powinienem najpierw zalogować się do virtualenv przed rozpakowaniem? Po załadowaniu virtualenv i używaniu go za pomocą polecenia „workon test”, czy jakikolwiek pakiet Pythona, który zainstaluję, niezależnie od katalogu, który go znajdę, zainstaluje się w odpowiednim folderze site-packages virtualenv?

Opcja 1 to rozpakowanie programu w języku Python do / home / username / tmp - następnie zaloguj się do mojego virtualenv, przejdź do tego folderu i uruchom program setup.py - zakładając, że virtualenv prześle wszystkie odpowiednie pliki do własnego folderu site-packages .

LUB scenariusz 2 polega na rozpakowaniu plików bezpośrednio do pakietów witryn i uruchomieniu ich z tego miejsca (po zalogowaniu się do virtualenv) itp.

Dziękuję za pomoc w rozwiązaniu tego problemu Pythonowi!

Jamison
źródło

Odpowiedzi:

123

Zwykle wyodrębniłem program do folderu tymczasowego, a następnie z tego folderu uruchomiłem plik setup.py, używając bezpośredniej ścieżki do instancji pythona virtualenv. np. jeśli twój virtualenv znajduje się w / home / username / virtualpy, użyj tego (z twojego folderu tymczasowego)

/home/username/virtualpy/bin/python setup.py install

Powinno to zainstalować go w folderze pakietu witryny virtualenv.

dwelch
źródło
2
Więc tak naprawdę operacja importu polega na uruchomieniu Pythona przy użyciu wersji pythona (2.6) zainstalowanej w virtualenv ... fajnie! Dzięki Dwelch.
Jamison
Upewnij się, że uruchamiasz go z folderu tymczasowego; setup.py prawdopodobnie spodziewa się, że będzie to bieżący folder.
Seth
Nie wydaje się to już być konieczne. Po aktywowaniu wirtualnego środowiska env po prostu uruchamiam python setup.py installlub python setup.py developi instaluję go we właściwym miejscu.
Oliver
13

dobrze po przejściu do środowiska wirtualnego. należy wpisać

which python

a jeśli zwróci ścieżkę, w której istnieje twoje wirtualne środowisko, to jest w porządku, możesz bezpośrednio uruchomić to polecenie.

$ python setup.py build
$ python setup.py install

ale jeśli podaje ścieżkę poziomu globalnego, która nie jest twoją virtualenv'sścieżką, powinieneś spróbować użyć

$ ~/.virtualenv/python-env/bin/python setup.py build
$ ~/.virtualenv/python-env/bin/python setup.py install
Chitrank Dixit
źródło
0

Jeśli pakiet nie zostanie zainstalowany z repozytorium, spróbuj pod venv używając sudo. Jako przykład dla pakietu python pathos;

/venv3.6/bin$ sudo pip3 install pathos
Yagmur SAHIN
źródło
0

PACKAGE_DIR = / some / package / directory / path export VENV = $ (pipenv --venv) && export BASE_DIR = $ (pwd) && cd $ PACKAGE_DIR && $ VENV / bin / python setup.py install && cd $ BASE_DIR

Christopher Broderick
źródło