Ich habe Fragen zu Eidateien in Python.
Ich habe viel Python-Code nach Paket organisiert und versuche, Eidateien zu erstellen. Ich folge Anweisungen , aber sie sind sehr häufig.
Demnach brauche ich anscheinend eine setup.py-Datei.
- Würden Sie mir bitte sagen, was ich in die Datei setup.py einfügen muss und wo sie sich befinden soll?
- Ich nehme an, es reicht aus, setup.py zu erstellen und dann "setup.py bdist_egg" zu starten, um die Eidatei abzurufen. Könnten Sie bitte bestätigen?
- Ist es möglich, nur .pyc-Dateien in die Egg-Datei aufzunehmen?
- Mit einer .egg-Datei, wie kann ich den Code einfach starten, ohne ihn zu entpacken
java -jar <jar file>
?
Antworten:
Sie lesen die falsche Dokumentation. Sie möchten dies: https://setuptools.readthedocs.io/en/latest/setuptools.html#develop-deploy-the-project-source-in-development-mode
Erstellen setup.py in der distutils Dokumentation in Pythons Standardbibliothek Dokumentation behandelt hier . Der Hauptunterschied (für Python Eier) ist es, Ihnen
import setup
aussetuptools
, nichtdistutils
.Ja. Das sollte richtig sein.
Das glaube ich nicht.
pyc
Dateien können version- und plattformabhängig sein. Möglicherweise können Sie das Ei öffnen (es sollten nur Zip-Dateien sein) und.py
Dateien löschen, die Dateien hinterlassen..pyc
Dies wird jedoch nicht empfohlen.Ich bin mir nicht sicher. Das könnte "Entwicklungsmodus" sein. Oder suchen Sie nach einem "py2exe" - oder "py2app" -Modus?
quelle
Für # 4 ist das Starten von Java mit einer JAR-Datei für Ihre App eine neue Funktion in Python 2.6, ausführbare Zip-Dateien und Verzeichnisse .
Wobei myapp.zip eine Zip-
__main__.py
Datei ist, die eine Datei enthält, die als auszuführende Skriptdatei ausgeführt wird. Ihre Paketabhängigkeiten können auch in die Datei aufgenommen werden:Sie können auch ein Ei ausführen, aber die Beschwörung ist nicht so schön:
Dadurch wird die Datei myapp.egg in den Python-Pfad eingefügt und mit dem Argument -m ein Modul ausgeführt. Ihre myapp.egg wird wahrscheinlich ungefähr so aussehen:
Und Python wird ausgeführt
__init__.py
(Sie sollten dies__file__=='__main__'
in Ihrer App für die Verwendung in der Befehlszeile überprüfen ).Egg-Dateien sind nur Zip-Dateien, sodass Sie sie möglicherweise
__main__.py
mit einem Zip-Tool zu Ihrem Ei hinzufügen und in Python 2.6 ausführbar machen und wiepython myapp.egg
anstelle der obigen Beschwörung ausführen können, in der die Umgebungsvariable PYTHONPATH festgelegt ist.Weitere Informationen zu ausführbaren Zip-Dateien, einschließlich der Möglichkeit , sie mit einem Shebang direkt ausführbar zu machen , finden Sie in Michael Foords Blog-Beitrag zu diesem Thema .
quelle
Ich denke, Sie sollten jetzt Python-Räder für die Verteilung anstelle von Ei verwenden.
quelle