Ich habe eine einfache Anwendung geschrieben, die Selen verwendet, um durch Seiten zu nagivieren und ihren Quellcode herunterzuladen. Jetzt möchte ich meine Anwendung Windows-ausführbar machen.
Meine setup.py
-Datei:
Mein Programm ( main.py
) (mit setup.py
file) befindet sich in C:\Documents and Settings\student\Desktop
. Py2exe erstellt meine exe in C:\Documents and Settings\student\Desktop\dist
.
Ich habe sowohl webdriver.xpi
als auch webdriver_prefs.json
Dateien nach C:\Documents and Settings\student\Desktop\dist\selenium\webdriver\firefox\
kopiert, aber ich erhalte den Fehler beim Versuch, meine Anwendung zu starten:
Wie löst man das?
Tatsächlich hat es mit solch einer setup.py
Datei funktioniert:
Aber das Problem ist, ich muss SINGLE ausführbare Datei erstellen.
TL; DR - Bitte schau dir dieses Tool an, das ich gebaut habe: Ссылка
Darf ich vorschlagen, PyInstaller anstelle von py2exe oder irgendetwas anderes zu verwenden, da PyInstaller eine viel bessere Arbeit in Bezug auf die Bündelung einer einzelnen ausführbaren Datei leistet. Ich bin zu 90% der Zeit in Windows (keine Beschwerden hier) mit meiner Python - Programmierung - PyInstaller ist eine viel bessere Option als py2exe (zumindest für mich - ich habe eine Menge von Windows - Compilern in die Vergangenheit mit unterschiedlichem Erfolg). Vielleicht können auch andere Leute, die Probleme bei der Zusammenstellung haben, von dieser Methode profitieren.
Downloade meine PyInstaller-Assitance-Tools - PAT (es sind nur zwei Batch-Dateien und eine ausführbare Datei mit der Quell-Python-Datei der ausführbaren Datei - für den Paranoiden) ... Die Dateien sind oben aufgelistet :
Platzieren Sie die executable Datei "pyi-fixspec.exe" im vorherigen "Scripts" Ordner, den ich oben erwähnt habe ... das macht die Kompilierung auf lange Sicht viel einfacher!
Ich verwende eine Standardfunktion, die auf den Speicherort von Anwendungen / Skripts verweist , die meine Python-Anwendung verwenden muss, um während der Ausführung / des Betriebs zu arbeiten. Diese Funktion funktioniert sowohl, wenn die App ein eigenständiges Python-Skript ist, als auch, wenn sie vollständig über pyinstaller kompiliert wurde.
Hier ist der Code, den ich benutze ...
%Vor%und hier ist meine App, die es benutzt ....
%Vor%Das bedeutet, dass die App / Dateien in Bezug auf die Verzeichnisstruktur ungefähr so aussehen:
%Vor%Bitte beachten Sie, dass die Daten / Dateien / Ordner, die ich für meine App bündle, unterhalb der Hauptdatei liegen, die ich kompilieren werde ... Der "_MEIPASS" Teil in der Funktion lässt pyinstaller wissen, dass er funktioniert eine kompilierte Anwendung ... SEHR WICHTIGER HINWEIS: Bitte verwenden Sie die Funktion "resource_path" , da die Anwendung "pyi-fixspec.exe" nach dieser Phrase / Funktion sucht, während sie die Python-Anwendungspfadanalyse analysiert / korrigiert
Wechseln Sie in das Verzeichnis mit den beiden oben genannten Batch-Dateien und geben Sie Folgendes ein:
Option 1 %Vor%Die ausführbare Ausgabedatei führt beim Doppelklicken auf
zu einer GUI-App Option 2 %Vor%Die ausführbare Ausgabedatei führt beim Doppelklicken zu einer WINDOWS CONSOLE-App - erwartet NUR die Befehlszeilenaktivität
Ihre neue ausführbare Datei mit einer einzigen Datei ist fertig! Suchen Sie an dieser Stelle nach
%Vor%Wenn Sie die ursprüngliche Python-Datei, die gerade kompiliert wurde, bearbeiten / ändern, löschen Sie bitte den Ordner / Inhalt von ** \ NameOfPythonFile ** vor dem nächsten Start der Kompilierung (Sie möchten die historischen / Artefaktdateien löschen) )
Kaffeepause - Wenn Sie ICONS zur ausführbaren Datei (und anderen Elementen) bearbeiten / hinzufügen möchten, sehen Sie sich bitte die generierte ".spec" -Datei und die PyInstaller-Dokumentation für Konfigurationsdetails an. Sie müssen es nur noch einmal in der Windows-Konsole starten:
%Vor%Mit Nuitka können Sie eine einzelne ausführbare Datei erstellen, die nativ ausgeführt wird. Er konvertiert den Python-Code in C ++ und kompiliert ihn dann.
Es erfordert jedoch, dass Sie einen Compiler installiert haben. Die entsprechenden Versionen von Microsoft Visual C ++ oder GCC. Microsoft hat den "Microsoft Visual C ++ Compiler für Python 2.7" veröffentlicht, den Sie hier unter Ссылка
Ein nettes Installationsprogramm von MinGW GCC für Windows finden Sie unter Ссылка mit detaillierten Anweisungen, einschließlich der, welche MSVCRTXX.dll-Version verlinkt werden soll mit welcher Version von Python.
Ihre Anwendung wird auch ein bisschen schneller. Ich schrieb einen Blog-Post über diese Art von Sache bei (ich bekomme kein Geld von Click-Throughs oder Anzeigen).
Ссылка .
Das Problem, das Sie haben, ist, dass Selen versucht, eine Datei auf eine Weise zu öffnen, die nicht direkt mit py2exe kompatibel ist.
Wie Sie hier in Zeile 63 sehen können, Selen muss eine Einstellungsdatei öffnen, die normalerweise mit dem Paket geliefert wird. Es verwendet die Variable __file__
, um es zu finden, die nicht gut mit py2exe funktioniert . Wie Sie herausgefunden haben, ist es möglich, dies auch durch Verpacken zu umgehen die Prefs-Datei in Ihrer Distribution . Das ist jetzt mehr als eine Datei.
Das py2exe-Wiki hat dann ein Rezept, um NSIS zu verwenden , das eine selbstextrahierende ausführbare Datei von Ihrem vollständigen erstellen wird Verteilung.