98 votes

Comment créer fichier oeuf Python

J'ai des questions au sujet de l'oeuf fichiers en Python.

J'ai beaucoup de code Python organisé par paquet et je suis en train de créer des œufs de fichiers. Je suis en suivant les instructions, mais ils sont très fréquentes.

Selon cela, il semble que j'ai besoin d'avoir un setup.py fichier.

  1. Veuillez s'il vous plaît dites-moi ce dont j'ai besoin pour mettre en setup.py fichier et l'endroit où il doit résider?
  2. Je suppose qu'il suffit de créer setup.py et puis démarrer "setup.py bdist_egg" pour obtenir des œufs de fichier. Pourriez vous svp confirmer?
  3. Est-il possible d'inclure seulement .pyc fichiers dans de l'œuf fichier?
  4. Avoir .oeuf fichier comment je peux juste commencer le code sans déballage comme java -jar <jar file> ?

79voto

wisty Points 4280

Vous êtes à la lecture de la mauvaise documentation. Vous voulez ce: http://peak.telecommunity.com/DevCenter/setuptools

  1. La création d'setup.py est couvert dans le distutils en Python standard de la documentation de la bibliothèque ici. La principale différence (pour python œufs) est vous - import setup de setuptools, pas distutils.

  2. Yep. Que devrait être le droit.

  3. Je ne le pense pas. pyc fichiers version et dépendants de la plateforme. Vous pourriez être en mesure d'ouvrir l'œuf (ils devraient être les fichiers zip) et supprimez - .py fichiers de quitter .pyc fichiers, mais il ne serait pas être recommandé.

  4. Je ne suis pas sûr. "Mode de Développement". Ou vous êtes à la recherche pour certains "py2exe" ou "py2app" mode?

30voto

lambacck Points 4955

Pour le #4, la chose la plus proche à partir de java avec un fichier jar pour votre application est une nouvelle fonctionnalité dans la version 2.6 de Python, exécutable zip des fichiers et des répertoires.

python myapp.zip

Où myapp.zip est un zip contenant un __main__.py le fichier exécuté en tant que fichier de script à exécuter. Votre paquet de dépendances peuvent également être inclus dans le fichier:

__main__.py
mypackage/__init__.py
mypackage/someliblibfile.py

Vous pouvez également exécuter un œuf, mais l'incantation n'est pas aussi beau:

# Bourn Shell and derivatives (Linux/OSX/Unix)
PYTHONPATH=myapp.egg python -m myapp
rem Windows 
set PYTHONPATH=myapp.egg
python -m myapp

Cela met le myapp.oeuf sur le Python path et utilise l'argument-m pour exécuter un module. Votre myapp.l'oeuf sera probablement ressembler à quelque chose comme:

myapp/__init__.py
myapp/somelibfile.py

Et python sera exécuté __init__.py (vous devez vérifier que __file__=='__main__' dans votre application en ligne de commande utilisation).

Oeuf fichiers sont simplement des fichiers zip de sorte que vous pourriez être en mesure d'ajouter __main__.py de votre oeuf avec un zip outil et le rendre exécutable python 2.6 et lancez - python myapp.egg au lieu de le au-dessus de l'incantation où la variable d'environnement PYTHONPATH est réglé.

Plus d'informations sur l'exécutable des fichiers zip, y compris comment les faire directement exécutable avec un shebang peut être trouvé sur Michael Foord blog post sur le sujet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X