Wie kann ich mit einem virtualenv verwenden pywin32 ohne die Host-Umgebung der Website-Pakete Ordner enthalten zu haben?

StackOverflow https://stackoverflow.com/questions/1830304

Frage

Ich arbeite mit PyInstaller unter Python 2.6, die aufgrund des Chaos nur teilweise unterstützt MS geschaffen mit ihrem manifesten nonense die Python jetzt, da es wirkt sich nun MSVC8 zusammengestellt.

Das Problem ist, dass das Manifest Einbettung Unterstützung beruht auf dem pywin32 Erweiterungen zu bauen, um die ein Schmerz ist, weil ohne einschließlich der Website-Pakete Ordner des Host, wenn ich die virtualenv (irgendwie besiegt den Punkt in einer Build-Umgebung) ich kann nicht einen Weg finden, um die erforderlichen Erweiterungen zu installieren, so dass sie zu PyInstaller zugänglich sind.

Hat jemand eine Lösung für dieses Problem gefunden?

War es hilfreich?

Lösung 3

OK, gut, da ich einen Weg zu finden, hatte vorwärts improvisierte ich. Ich habe erstellt intern eine Git-Repository mit einer gehackten zusammenen Version von pywin32, die innerhalb eines virtualenv mit dem Standard setup.py Skript installieren. Es dauerte viel Hantieren, um es richtig funktioniert, aber ich schaffte es zu bekommen zu laden und jetzt der abhängige Code funktioniert, wie ich es brauche. Wenn die Leute denken, dass dies von Vorteil für die Gemeinschaft sein würde schreiben Sie einen Kommentar. Wenn ich genug Ich werde versuchen, etwas auf meinem GitHub Konto setzen

Andere Tipps

Ich fand http://old.nabble.com/ Fenster: -virtualenv-and-pywin32 - td27658201.html (jetzt ein toter Link), die folgende Lösung angeboten:

  1. http://sourceforge.net/projects/pywin32/files/ für die URL der exe Sie
  2. wollen
  3. Aktivieren Sie Ihre virtualenv
  4. Ausführen easy_install http://PATH.TO/EXE/DOWNLOAD

Das funktioniert mit modernen Versionen von Setuptool (circa Februar 2014, von tovmeod in den Kommentaren berichteten).


Wenn Sie eine alte Version von Setuptools verwenden (oder verteilen sie wieder in Setuptools verschmolzen), können Sie diese Fehlermeldung erhalten:

  

Fehler: c: \ users \ bla \ AppData \ Local \ temp \ easy_install-ibkzv7 \ pywin32-214.win32-py2.6.exe ist kein gültiges distutils Windows-EXE

In diesem Fall:

  1. Laden Sie die EXE-selbst
  2. Aktivieren Sie Ihre virtualenv
  3. Ausführen easy_install DOWNLOADED_FILE.exe

Ich habe versucht, eher hoffnungsvoll „BIB installieren“ anstatt „easy_install“, aber das hat nicht funktioniert, und wahrscheinlich wird nie (Zitat benötigt).


Schließlich fand ich aber noch keine Lösung bei getestet http://www.mail-archive.com/python-list@python.org/msg272040.html das ist:

  

Dies löst die pywin32.pth-Datei in meine virtualenv Website-Pakete durch Kopieren   und Editieren der Datei auf den Weg zu zeigen.

Wenn die anderen Optionen für Sie nicht funktionieren, vielleicht diesen Willen?

Für Python 2.7 oder 3.x Verwendung pypiwin32 .

pip install pypiwin32

Diese seit vorherigen Antwort verbessert worden sein, da ich erfolgreich pywin32 auf Sandbox auf mehreren Rechnern ohne spezifische „Hacks“ installiert haben:

$ virtualenv sandbox
$ sandbox\scripts\activate
(sandbox) $ git clone https://github.com/Travis-Sun/pywin32.git
(sandbox) $ cd pywin32
(sandbox) $ python setup.py install

Getestet mit folgenden Umgebung:

Edit: Scratch dies für jetzt scheint einige Probleme mit der Installation noch ...

zu sein

Ich habe ziemlich müde von der ganzen Situation, und gerade eine Reihe von konvertierten Rädern ( „Rad convert “). Ich werde versuchen, und halten sie für das letzte Build beibehalten, aber schreien, wenn es irgendwelche Probleme.

https://tr00st.co.uk/python/wheel/pywin32/

Die Installation kann leicht pip mit getan werden und zeigt auf das Paket Ihre Version und Architektur entspricht. Zum Beispiel für Python 3.5 / amd64:

pip installieren https: // tr00st. co.uk/python/wheel/pywin32/pywin32-219-cp35-none-win_amd64.whl

Caveat: Die --upgrade fehlschlägt zur Zeit, da das Deinstallationsvorgang nicht in der Lage ist, nachdem sich aufzuräumen (Zugriff verweigert, wenn win32api.pyd Reinigung) - dies ist nur, wenn das temporäre Verzeichnis zu entfernen, die sein kann manuell gelöscht. Der einfachste Weg, um dies zu deinstallieren und anstatt ein Upgrade zu installieren, dann manuell den temporären Ordner löschen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top