Wenn sich das Paket auf PYPI befindet, laden Sie es und seine Abhängigkeiten in ein lokales Verzeichnis herunter. Z.B
$ mkdir / pypi && cd / pypi
$ ls -la
-rw-r - r-- 1 Pavel Staff 237954 19. April 11:31 Flask-WTF-0.6.tar.gz
-rw-r - r-- 1 Pavel Staff 389741 22. Februar 17:10 Jinja2-2.6.tar.gz
-rw-r - r-- 1 Mitarbeiter 70305 11. April 00:28 MySQL-python-1.2.3.tar.gz
-rw-r - r-- 1 pavel staff 2597214 Apr 10 18:26 SQLAlchemy-0.7.6.tar.gz
-rw-r - r-- 1 Pavel-Mitarbeiter 1108056 22. Februar 17:10 Werkzeug-0.8.2.tar.gz
-rw-r - r-- 1 Mitarbeiter 488207 10. April 18:26 boto-2.3.0.tar.gz
-rw-r - r-- 1 Pavel Staff 490192 16. April 12:00 Flasche-0.9-dev-2a6c80a.tar.gz
Einige Pakete müssen möglicherweise von Hand in ähnlich aussehenden Tarballs archiviert werden. Ich mache es oft, wenn ich eine neuere (weniger stabile) Version von etwas möchte. Einige Pakete sind nicht auf PYPI, daher gilt dies auch für sie.
Angenommen, Sie haben eine ordnungsgemäß geformte Python-Anwendung in ~/src/myapp
. ~/src/myapp/setup.py
wird eine install_requires
Liste haben, die ein oder mehrere Dinge erwähnt, die Sie in Ihrem /pypi
Verzeichnis haben. Wie so:
install_requires=[
'boto',
'Flask',
'Werkzeug',
# and so on
Wenn Sie Ihre App mit allen erforderlichen Abhängigkeiten ausführen möchten, während Sie sie noch hacken, gehen Sie wie folgt vor:
$ cd ~ / src / myapp
$ python setup.py entwickle - immer-entpacken --allow-hosts = Keine --find-links = / pypi
Auf diese Weise wird Ihre App direkt aus Ihrem Quellverzeichnis ausgeführt. Sie können Dinge hacken und dann die App erneut ausführen, ohne etwas neu zu erstellen.
Wenn Sie Ihre App und ihre Abhängigkeiten in der aktuellen Python-Umgebung installieren möchten, gehen Sie folgendermaßen vor:
$ cd ~ / src / myapp
$ easy_install - immer-entpacken --allow-hosts = Keine --find-links = / pypi.
In beiden Fällen schlägt der Build fehl, wenn eine oder mehrere Abhängigkeiten nicht im /pypi
Verzeichnis vorhanden sind. Es wird nicht versucht, fehlende Dinge aus dem Internet promisku zu installieren.
Ich empfehle sehr aufrufen setup.py develop ...
und easy_install ...
in einer aktiven virtuellen Umgebung zu vermeiden , dass Ihre globale Python - Umgebung zu kontaminieren. Es ist (virtuell) also so ziemlich der richtige Weg. Installieren Sie niemals etwas in einer globalen Python-Umgebung.
Wenn der Computer, auf dem Sie Ihre App erstellt haben, dieselbe Architektur hat wie der Computer, auf dem Sie sie bereitstellen möchten, können Sie einfach das gesamte Verzeichnis der virtuellen Umgebung easy_install
speichern, in dem Sie alles gespeichert haben. Kurz vor dem Tarballing müssen Sie das Verzeichnis der virtuellen Umgebung verschiebbar machen (siehe Option --relocatable ). HINWEIS: Auf dem Zielcomputer muss dieselbe Python-Version installiert sein, und auch alle C-basierten Abhängigkeiten, die Ihre App möglicherweise vorinstalliert hat, müssen dort ebenfalls vorinstalliert sein (z. B. wenn Sie von PIL abhängig sind , müssen libpng, libjpeg usw. vorinstalliert sein). .