J'ai des questions sur les fichiers d'oeufs en Python.
J'ai beaucoup Python organisé par paquet et j'essaie de créer des fichiers Egg. Je suis instructions , mais ils sont très courants.
D'après cela, il me semble que j'ai besoin d'un fichier setup.py.
Java -jar <jar file>
Est-ce que?Vous lisez la mauvaise documentation. Vous voulez ceci: https://setuptools.readthedocs.io/en/latest/setuptools.html#develop-deploy-the-project-source-in-development-mode
La création de setup.py est décrite dans la documentation de distutils dans la documentation de la bibliothèque standard de Python here . La principale différence (pour python oeufs) est que vous import setup
de setuptools
, pas distutils
.
Oui. Cela devrait être juste.
Je ne pense pas. Les fichiers pyc
peuvent dépendre de la version et de la plate-forme. Vous pourrez peut-être ouvrir l’oeuf (il devrait s’agir de fichiers Zip) et supprimer .py
fichiers quittant .pyc
fichiers, mais cela ne serait pas recommandé.
Je ne suis pas sûr. Cela pourrait être "Mode de développement". Ou cherchez-vous un mode "py2exe" ou "py2app"?
Pour le n ° 4, le plus proche du démarrage de Java avec un fichier jar pour votre application est une nouvelle fonctionnalité de Python 2.6, fichiers Zip exécutables et répertoires .
python myapp.Zip
Où myapp.Zip est un zip contenant un __main__.py
fichier qui est exécuté en tant que fichier de script à exécuter. Les dépendances de votre paquet peuvent également être incluses dans le fichier:
__main__.py
mypackage/__init__.py
mypackage/someliblibfile.py
Vous pouvez également exécuter un oeuf, mais l'incantation n'est pas aussi agréable:
# Bourn Shell and derivatives (Linux/OSX/Unix)
PYTHONPATH=myapp.Egg python -m myapp
rem Windows
set PYTHONPATH=myapp.Egg
python -m myapp
Cela place myapp.Egg sur le chemin Python et utilise l'argument -m pour exécuter un module. Votre myapp.Egg ressemblera probablement à ceci:
myapp/__init__.py
myapp/somelibfile.py
Et python exécutera __init__.py
(vous devriez vérifier que __file__=='__main__'
dans votre application pour une utilisation en ligne de commande).
Les fichiers d'oeufs ne sont que des fichiers Zip, vous pouvez donc éventuellement ajouter __main__.py
à votre oeuf avec un outil Zip et le rendre exécutable dans python 2.6 et l'exécuter comme python myapp.Egg
au lieu de l'incantation ci-dessus où la variable d'environnement PYTHONPATH est définie.
Plus d'informations sur les fichiers Zip exécutables, y compris comment les rendre directement exécutables avec un Shebang , sont disponibles sur billet de blog de Michael Foord sur le sujet .
Je pense que vous devriez utiliser roues de python pour la distribution au lieu de Egg maintenant.
Les roues sont le nouveau standard de distribution python) et sont destinées à remplacer les œufs. La prise en charge est proposée sous forme de pip> = 1,4 et de setuptools> = 0,8.