2017-03-22 13 views
2

Ich versuche, mein Python-Skript (Python 2.7.13) in eine ausführbare Datei mit Pyinstaller 3.2.1 zu konvertieren. In meinem Skript verwende ich Bibliotheken von Pywin32-220Stop Pyinstaller von Kopieren unerwünschter/unnötiger Dateien und Ordner

import win32com.client 
import win32com.shell 
import win32event 
import win32gui 
import win32process 
import win32api 

, wenn ich das erzeugte Verzeichnis der ausführbaren Datei zu überprüfen, finde ich, dass pyinstaller kopierten Dateien wie Pythonwin.exe und PyWin32.chm und Ordner wie Demos und win32comext die don Ich habe nichts mit meiner ausführbaren Datei zu tun. Es ist eher so, dass der Pyinstaller einfach das Verzeichnis von Pywin in mein ausführbares Verzeichnis kopiert hat.

Meine Frage ist, gibt es einen Weg in (.spec-Datei zum Beispiel), pyinstaller zu sagen, solche Dateien und Ordner nicht einzuschließen?

Eine Randnotiz: Ich habe Pyinstaller 2.1 zuvor verwendet und es enthielt keine dieser Dateien/Ordner, die nicht einmal in der generierten Exe gebündelt wurden. So weiß ich, dass sie unnötig sind.

Antwort

0

Ich fand heraus, warum es dieses Verhalten tat. Ich habe pywin exe unter Verwendung von easy_intall mit einer Batch-Datei installiert, die ein virtualenv erstellt und einige andere benötigte Pakete für mein Projekt installiert. Die Option easy_install installiert pywin in einem einzigen Verzeichnis im Ordner site-packages. Ich habe dann die Whl-Datei heruntergeladen und stattdessen Pip-Installation verwendet. Es installiert das pywin32 genauso wie wenn man es mit dem excutable installiert. Das Ausführen von pyinstaller ruft jetzt nur die erforderlichen Dateien und nicht den gesamten Ordner ab.

Verwandte Themen