wake-up-neo.com

Wie man manuell ein Pypi-Modul ohne pip/easy_install installiert?

Ich möchte das Modul gntp verwenden, um toasterartige Benachrichtigungen für eine C/C++ - Software anzuzeigen. Ich möchte alle Abhängigkeiten für die Software auf einem anderen Computer selbst ausführen.

Das gntp-Modul ist nur über das Pip-Installationsprogramm verfügbar, das nicht verwendet werden kann (Der Computer, auf dem die Software ausgeführt wird, hat keine Internetverbindung): wie kann ich es von den Quellen aus installieren?

Ich möchte den Benutzer nicht zwingen, easy_install/pip zu installieren und den pip-Pfad manuell zum% PATH hinzuzufügen.

PS: Ich verwende Python 2.7 auf einem Windows-Computer.

55
lucasg
  1. Laden Sie das Paket herunter
  2. entpacken Sie es, wenn es gezippt ist
  3. cd in das Verzeichnis, in dem sich setup.py befindet
  4. Wenn in der hierin enthaltenen Dokumentation Installationsanweisungen enthalten sind, lesen Sie die Anweisungen ANDERE
  5. python setup.py install eingeben

Möglicherweise benötigen Sie Administratorrechte für Schritt 5. Was Sie hier tun, hängt also von Ihrem Betriebssystem ab. In Ubuntu würden Sie beispielsweise Sudo python setup.py install sagen 

EDIT - danke an kwatford (siehe ersten Kommentar)

Um die Notwendigkeit von Administratorrechten in Schritt 5 oben zu umgehen, können Sie möglicherweise das Flag --user verwenden. Auf diese Weise können Sie das Paket nur für den aktuellen Benutzer installieren.

Die Dokumente sagen:

Dateien werden in die Unterverzeichnisse von site.USER_BASE (nachfolgend als Userbase geschrieben) installiert. Dieses Schema installiert reine Python-Module und Erweiterungsmodule am selben Speicherort (auch als site.USER_SITE bezeichnet). Hier sind die Werte für UNIX, einschließlich Mac OS X:

Weitere Informationen finden Sie hier: http://docs.python.org/2.7/install/index.html

91
Sheena

Um Sheenas Antwort weiter zu erklären, brauchte ich Setup-Tools installiert als Abhängigkeit von einem anderen Tool, z more-itertools .

Herunterladen

Drücke den Clone or download und wählen Sie Ihre Methode. Ich habe diese in ein dev/py/libs-Verzeichnis in meinem Benutzerverzeichnis abgelegt. Es spielt keine Rolle, wo sie gespeichert werden, da sie dort nicht installiert werden.

Setup-Tools installieren

Sie müssen Folgendes im Verzeichnis setup-tools ausführen.

python bootstrap.py
python setup.py install

Allgemeine Abhängigkeiten Installation

Jetzt können Sie zum Verzeichnis more-itertools navigieren und es wie gewohnt installieren.

  1. Laden Sie das Paket herunter
  2. Packe es aus, wenn es ein Archiv ist
  3. Navigieren Sie (cd ...) in das Verzeichnis, das setup.py enthält.
  4. Wenn in der Dokumentation Installationsanweisungen enthalten sind, lesen und befolgen Sie diese SONSTIGEN Anweisungen
  5. Tippe ein: python setup.py install
2
Mr. Polywhirl

Obwohl Sheena answer die Aufgabe erfüllt, hört pip nicht einfach dort auf. 

Aus Sheenas Antwort:

  1. Laden Sie das Paket herunter
  2. entpacken Sie es, wenn es gezippt ist
  3. cd in das Verzeichnis, in dem sich setup.py befindet
  4. Wenn in der Dokumentation enthaltene Installationsanweisungen vorhanden sind, lesen Sie die Anweisungen ANDERNFALLS
  5. python setup.py install eingeben

Am Ende erhalten Sie eine .Egg-Datei in site-packages. Als Benutzer sollte Sie dies nicht stören. Sie können das Paket normalerweise import und uninstall verwenden. Wenn Sie es jedoch auf pip-Weise ausführen möchten, können Sie die folgenden Schritte ausführen.

Im Verzeichnis site-packages

  1. unzip <.Egg file>
  2. benennen Sie das Egg-INFO-Verzeichnis in <pkg>-<version>.dist-info um.
  3. Jetzt sehen Sie ein separates Verzeichnis mit dem Paketnamen <pkg-directory>
  4. find <pkg-directory> > <pkg>-<version>.dist-info/RECORD
  5. find <pkg>-<version>.dist-info >> <pkg>-<version>.dist-info/RECORD. Der >> soll das Überschreiben verhindern.

Wenn Sie sich nun das Verzeichnis site-packages anschauen, werden Sie nie feststellen, dass Sie ohne pip installiert wurden. Um uninstall zu verwenden, führen Sie einfach den üblichen pip uninstall <pkg> aus. 

0
John Strood