Wie installiere ich ein Pypi-Modul manuell ohne pip / easy_install?

88

Ich möchte das gntp-Modul verwenden , um toasterähnliche Benachrichtigungen für eine C / C ++ - Software anzuzeigen. Ich möchte alle Abhängigkeiten für das Soft packen, damit es auf einem anderen Computer selbst ausführbar ist.

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

Ich würde es vorziehen, den Benutzer nicht zu 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.

lucasg
quelle
4
Vielleicht mit python setup.py install?
Nicolas

Antworten:

144
  1. Laden Sie das Paket herunter
  2. entpacke es, wenn es komprimiert ist
  3. CD in das Verzeichnis mit setup.py
  4. Wenn in der hierin enthaltenen Dokumentation Installationsanweisungen enthalten sind, lesen und befolgen Sie die Anweisungen ANDERWEITIG
  5. eintippen python setup.py install

Für Schritt 5 benötigen Sie möglicherweise Administratorrechte. Was Sie hier tun, hängt daher von Ihrem Betriebssystem ab. Zum Beispiel in Ubuntu würde man sagensudo python setup.py install

EDIT - danke an kwatford (siehe erster 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 Unterverzeichnissen von site.USER_BASE installiert (im Folgenden als Benutzerbasis geschrieben). 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 Details finden Sie hier: http://docs.python.org/2.7/install/index.html

Sheena
quelle
8
pip / easy_install / setup.py akzeptiert normalerweise ein --userFlag, um das Paket nur für den aktuellen Benutzer zu installieren, wobei im Allgemeinen die Notwendigkeit eines Administratorzugriffs umgangen wird.
Kwatford
3
Aus irgendeinem Grund sehe ImportError: No module named 'setuptools'ich Folgendes : Ich habe das hier gefunden: pypi.python.org/pypi/setuptools/1.1.6 Obwohl die Installation mir Ausnahmefehler gab, funktioniert das Websocket-Modul jetzt überhaupt nicht mehr zu diesem Zeitpunkt unter Python 3.3 unter Windows.
SSH Diesen
2
@SSHThis: Ich habe die gleichen Ergebnisse mit einem Paket, dessen Installation ich zum Laufen bringen möchte. Das Aufdrehen der Ausführlichkeit ergibt "Weil diese Distribution installiert wurde - Multi-Version [...]", was sowohl falsch (nur eine Version von Python hier installiert) als auch nicht hilfreich (unter Verwendung der dokumentierten "Python -m easy_install [...]" ist. "ist überhaupt keine Hilfe), ich bin bei dir - Python ist unbrauchbar.
Eric Towers
1
Ich denke, pip install target-packagenormalerweise werden automatisch andere Pakete installiert / aktualisiert, von denen das Zielpaket abhängt. Geschieht dies im Fall des setup.py-Ansatzes? Oder enthält zip of package auch alle Abhängigkeiten? Und meinst du, wir sollten Python-Räder anstelle von Reißverschlüssen herunterladen? Wie diese für Numpy? Wenn nicht, wo man Reißverschlüsse findet (zum Beispiel für Numpy)? (Ich
frage das
3
Sie können Pakete nicht wirklich herunterladen, während Sie offline sind ... Wenn Sie sie herunterladen möchten, während Sie sich außerhalb Ihres dummen Arbeitsnetzwerks befinden, würde ich wahrscheinlich Folgendes tun: 1. Erstellen Sie eine virtuelle Umgebung. 2. python setup.py installoder pip installall die Dinge, die Sie brauchen. 3. Führen Sie pip freeze aus, um eine Liste aller Pakete und aller Versionen zu erhalten. Sie können dies in einer Datei speichern (traditionell als Anforderungen.txt bezeichnet). Wenn Sie dann die Pakete herunterladen möchten, um sie auf verschiedene Computer zu kopieren, können Sie sie verwenden pip download [options] -r <requirements file>. Dies ist nicht der effizienteste Weg. Aber einfach
Sheena
5

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

Herunterladen

Klicken Sie auf die Clone or downloadSchaltfläche und wählen Sie Ihre Methode. Ich habe diese in ein dev/py/libsVerzeichnis in meinem Benutzer-Ausgangsverzeichnis gestellt. 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

Installation der allgemeinen Abhängigkeiten

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

  1. Laden Sie das Paket herunter
  2. Packen Sie es aus, wenn es sich um ein Archiv handelt
  3. Navigieren Sie ( cd ...) in das Verzeichnis, das enthältsetup.py
  4. Wenn in der hierin enthaltenen Dokumentation Installationsanweisungen enthalten sind, lesen und befolgen Sie die Anweisungen ANDERWEITIG
  5. Eintippen: python setup.py install
Mr. Polywhirl
quelle
1

Auch wenn Sheenas Antwort den Job macht, piphört sie nicht nur dort auf.

Aus Sheenas Antwort:

  1. Laden Sie das Paket herunter
  2. entpacke es, wenn es komprimiert ist
  3. CD in das Verzeichnis mit setup.py
  4. Wenn in der hierin enthaltenen Dokumentation Installationsanweisungen enthalten sind, lesen und befolgen Sie die Anweisungen ANDERWEITIG
  5. eintippen python setup.py install

Am Ende erhalten Sie eine .eggDatei in site-packages. Als Benutzer sollte Sie dies nicht stören. Sie können importund uninstalldas Paket normal. Wenn Sie es jedoch tun möchten, ist daspip , können Sie die folgenden Schritte ausführen.

Im site-packagesVerzeichnis

  1. unzip <.egg file>
  2. Benennen Sie das EGG-INFOVerzeichnis um in<pkg>-<version>.dist-info
  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. Das >>soll ein Überschreiben verhindern.

Wenn site-packagesSie sich das Verzeichnis ansehen, werden Sie nie feststellen, dass Sie ohne installiert haben pip. Um uninstalleinfach das Übliche zu tun pip uninstall <pkg>.

John Strood
quelle
Was passiert, wenn ich ein Paket aus dem Anaconda-Repository installiere und es keine setup.pyDatei enthält?
Verwirrt