Jeśli pakiet znajduje się w PYPI, pobierz go i jego zależności do jakiegoś lokalnego katalogu. Na przykład
$ mkdir / pypi && cd / pypi
$ ls -la
-rw-r - r-- 1 łata pavel 237954 19 kwietnia 11:31 Flask-WTF-0.6.tar.gz
-rw-r - r-- 1 pavel staff 389741 22 lutego 17:10 Jinja2-2.6.tar.gz
-rw-r - r-- 1 pavel staff 70305 11 kwietnia 00:28 MySQL-python-1.2.3.tar.gz
-rw-r - r-- 1 pavel staff 2597214 10 kwietnia 18:26 SQLAlchemy-0.7.6.tar.gz
-rw-r - r-- 1 pavel łata 1108056 22 lutego 17:10 Werkzeug-0.8.2.tar.gz
-rw-r - r-- 1 pavel staff 488207 10 kwietnia 18:26 boto-2.3.0.tar.gz
-rw-r - r-- 1 łata pavel 490192 16 kwietnia 12:00 flask-0.9-dev-2a6c80a.tar.gz
Niektóre pakiety mogą wymagać ręcznego archiwizowania w podobnie wyglądających paczkach. Robię to często, gdy chcę mieć nowszą (mniej stabilną) wersję czegoś. Niektórych pakietów nie ma w PYPI, więc to samo dotyczy ich.
Załóżmy, że masz poprawnie utworzoną aplikację w języku Python w ~/src/myapp
. ~/src/myapp/setup.py
będzie mieć install_requires
listę, która wymienia jedną lub więcej rzeczy, które masz w swoim /pypi
katalogu. Tak jak to:
install_requires=[
'boto',
'Flask',
'Werkzeug',
# and so on
Jeśli chcesz mieć możliwość uruchamiania aplikacji ze wszystkimi niezbędnymi zależnościami, a jednocześnie nadal ją hakujesz, zrobisz coś takiego:
$ cd ~ / src / myapp
$ python setup.py develop --always-unzip --allow-hosts = None --find-links = / pypi
W ten sposób Twoja aplikacja zostanie wykonana bezpośrednio z katalogu źródłowego. Możesz włamać się do rzeczy, a następnie ponownie uruchomić aplikację bez odbudowywania czegokolwiek.
Jeśli chcesz zainstalować swoją aplikację i jej zależności w obecnym środowisku Pythona, zrobisz coś takiego:
$ cd ~ / src / myapp
$ easy_install --always-unzip --allow-hosts = None --find-links = / pypi.
W obu przypadkach kompilacja zakończy się niepowodzeniem, jeśli w /pypi
katalogu nie ma co najmniej jednej zależności . Nie będzie próbować swobodnie instalować brakujących rzeczy z Internetu.
Gorąco polecam do powoływania setup.py develop ...
i easy_install ...
wewnątrz aktywnym środowisku wirtualnym , aby uniknąć zanieczyszczenia środowiska globalnego Pythona. Jest to (to znaczy virtualenv) droga do zrobienia. Nigdy nie instaluj niczego w globalnym środowisku Pythona.
Jeśli maszyna, na której zbudowałeś swoją aplikację, ma taką samą architekturę jak maszyna, na której chcesz ją wdrożyć, możesz po prostu złożyć w archiwum cały katalog środowiska wirtualnego, w którym easy_install
wszystko zostało umieszczone. Jednak tuż przed utworzeniem archiwum tarballu należy umożliwić relokację katalogu środowiska wirtualnego (zobacz opcję --relocatable ). UWAGA: maszyna docelowa musi mieć zainstalowaną tę samą wersję Pythona, a także wszelkie zależności oparte na języku C, które może mieć Twoja aplikacja, również muszą być tam wstępnie zainstalowane (np. Jeśli jesteś zależny od PIL , to libpng, libjpeg itp. Muszą być wstępnie zainstalowane) .