Maison > développement back-end > Tutoriel Python > Comment installer l'œuf Python

Comment installer l'œuf Python

藏色散人
Libérer: 2019-07-05 09:20:50
original
13914 Les gens l'ont consulté

Comment installer l'œuf Python

Les étudiants qui sont souvent exposés à Python peuvent remarquer que lorsque vous devez installer un package Python tiers, la commande easy_install peut être utilisée. easy_install est une commande incluse dans le package setuptools développé par PEAK (Python Enterprise Application Kit). Elle est utilisée pour installer le package egg. Le package egg est actuellement le moyen le plus populaire de packager et de déployer des applications Python.

Comment fabriquer et installer un paquet d'œufs ? Je vais l’analyser brièvement ci-dessous.

1.1 Installer setuptools

Tout d'abord, installez l'outil setuptools. Vous pouvez directement utiliser l'installation d'apt sous Debian/Ubuntu : :

$ sudo apt-get install python-setuptools
Copier après la connexion

Si vous l'installez manuellement, il existe deux manières :

Installez via le programme de démarrage ez_setup.py. Ce programme de démarrage téléchargera la dernière version des outils de configuration depuis Internet pour l'installation et pourra également mettre à jour les outils de configuration locaux.

$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ sudo python ez_setup.py
Copier après la connexion

Mettez à jour setuptools : :

$ sudo python ez_setup.py -U setuptools
Copier après la connexion

ou téléchargez le package egg de setuptools à installer. Le téléchargement de la dernière version peut être consulté ici. Après le téléchargement, installez-le via sh.

$ wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg
$ sudo sh setuptools-0.6c11-py2.6.egg
Copier après la connexion

Vous pouvez maintenant utiliser la commande easy_install pour installer d'autres packages egg.

1.2 Fabriquez votre propre paquet d'œufs

J'installe toujours les paquets d'œufs d'autres personnes, voulez-vous aussi créer votre propre paquet d'œufs ? D'accord, nous allons ensuite fabriquer nous-mêmes un simple sac à œufs. Tout d'abord, créez le répertoire du projet egg-demo et initialisez un fichier setup.py :

$ mkdir egg-demo
$ cd egg-demo
$ touch setup.py
$ ls
setup.py
Copier après la connexion

Ce qui suit consiste principalement à remplir setup.py. setup.py est en fait le fichier de configuration du package d'outils python distutils, et setuptools est basé sur distutils. Configurez les informations d'emballage via la fonction de configuration dans setup.py. Tout d’abord, nous devons introduire la configuration des fonctions de setuptools. La configuration de setuptools est en fait la fonction de configuration de distutils. Remplissez setup.py avec le contenu suivant :

$ cat setup.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from setuptools import setup
setup()
Copier après la connexion

À ce stade, un fichier de configuration d'oeuf vide est écrit. Nous pouvons utiliser la commande suivante pour générer le package egg :

$ python setup.py bdist_egg
Copier après la connexion

Jetons un coup d'œil à ce qui est généré :

$ ls -F
build/ dist/ setup.py UNKNOWN.egg-info/
Copier après la connexion

Vous pouvez voir trois autres dossiers. Sous le dossier dist, il y a un fichier egg : UNKNOWN-0.0.0-py2.6.egg. Ponte réussie ! Jetons d'abord un coup d'œil au format de ce fichier œuf :

$ file dist/UNKNOWN-0.0.0-py2.6.egg
dist/UNKNOWN-0.0.0-py2.6.egg: Zip archive data, at least v2.0 to extract
Copier après la connexion

Oh, il s'avère que c'est une archive zip ! D'accord, jetons un coup d'œil à la structure interne :

$ unzip -l dist/UNKNOWN-0.0.0-py2.6.egg
Archive:  dist/KNOWN-0.0.0-py2.6.egg
  Length      Date    Time    Name
---------  ---------- -----   ----
      120  2010-12-06 17:04   EGG-INFO/SOURCES.txt
        1  2010-12-06 17:04   EGG-INFO/top_level.txt
        1  2010-12-06 17:04   EGG-INFO/zip-safe
        1  2010-12-06 17:04   EGG-INFO/dependency_links.txt
      227  2010-12-06 17:04   EGG-INFO/PKG-INFO
---------                     -------
      350                     5 files
Copier après la connexion

Il n'y a qu'un seul dossier EGG-INFO, qui contient cinq fichiers d'informations sur les œufs. Il a disparu. Le nom de cet œuf est inconnu, version 0.0.0. C'est parce que nous n'avons rien défini dans la configuration. Évidemment, cet œuf ne peut rien faire. Ajoutez-y maintenant quelques ingrédients. Dans setup.py, la fonction setup reçoit une série de propriétés comme paramètres de configuration.

name name est le nom du package d'œufs et le nom du dossier à empaqueter. La valeur par défaut est INCONNU.

numéro de version, par défaut 0.0.0

packages Une autre fonction de setuptools, find_packages, est utilisée ici. Comme son nom l'indique, find_packages est utilisé pour empaqueter les fichiers dans le répertoire spécifié.

zip_safe est par défaut False, de sorte que le contenu du fichier de projet sera vérifié à chaque fois que le package egg est généré pour s'assurer qu'il est correct.

Il existe également des attributs descriptifs, tels que description, long_description, auteur, author_email, licence, mots-clés, plateforme, url, etc. Remplissez le fichier setup.py comme suit : 

$ cat setup.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from setuptools import setup, find_packages
setup(
        name = "demo",
        version="0.1.0",
        packages = find_packages(),
        zip_safe = False,
        description = "egg test demo.",
        long_description = "egg test demo, haha.",
        author = "amoblin",
        author_email = "amoblin@ossxp.com",
        license = "GPL",
        keywords = ("test", "egg"),
        platforms = "Independant",
        url = "",
        )
Copier après la connexion

Créez un répertoire demo portant le même nom que le nom ci-dessus dans le répertoire egg-demo. Écrivez le fichier __init__.py dans le répertoire demo : <🎜. >

$ mkdir demo
$ cat demo/__init__.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
def test():
    print "Hello, I&#39;m amoblin."
if __name__ == &#39;__main__&#39;:
    test()
Copier après la connexion

Générer à nouveau Après le paquet d'œufs, vérifiez les informations du paquet d'œufs :

$ python setup.py bdist_egg
$ unzip -l dist/demo-0.1.0-py2.6.egg
Archive:  dist/demo-0.1.0-py2.6.egg
  Length      Date    Time    Name
---------  ---------- -----   ----
      121  2010-12-06 17:30   demo/__init__.py
      344  2010-12-06 17:46   demo/__init__.pyc
      137  2010-12-06 17:46   EGG-INFO/SOURCES.txt
        5  2010-12-06 17:46   EGG-INFO/top_level.txt
        1  2010-12-06 17:46   EGG-INFO/zip-safe
        1  2010-12-06 17:46   EGG-INFO/dependency_links.txt
      227  2010-12-06 17:46   EGG-INFO/PKG-INFO
---------                     -------
      836                     7 files
Copier après la connexion

Vous pouvez voir qu'il existe un dossier de démonstration supplémentaire, qui contient le __init__.py que nous avons écrit. En adhérant au principe agile, installez-le d'abord et expérimentez-le avant de parler :

$ sudo python setup.py install
running install
install_dir /usr/local/lib/python2.6/dist-packages/
...
creating /usr/local/lib/python2.6/dist-packages/demo-0.1.0-py2.6.egg
Extracting demo-0.1.0-py2.6.egg to /usr/local/lib/python2.6/dist-packages
demo 0.1.0 is already the active version in easy-install.pth
Installed /usr/local/lib/python2.6/dist-packages/demo-0.1.0-py2.6.egg
Processing dependencies for demo==0.1.0
Finished processing dependencies for demo==0.1.0
Copier après la connexion

OK Installation terminée ! Ensuite, nous pouvons l'utiliser directement via l'importation !

$ python -c "from demo import test;test()"
Hello, I&#39;m amoblin.
Copier après la connexion

Exporté avec succès ! Cela signifie que l'installation est correcte. Un de nos sacs à œufs était né. Généralement, nos programmes sources sont placés dans le répertoire src, nous déplaçons donc ensuite le dossier demo vers src. Mais cela nécessite également de modifier le fichier setup.py, de modifier le paramètre de la fonction find_packages en 'src' et d'ajouter le paramètre package_dir :

packages=find_packages(&#39;src&#39;),
package_dir = {&#39;&#39;:&#39;src&#39;}
Copier après la connexion

Cela indique à setuptools de rechercher les packages dans le répertoire src au lieu du répertoire racine du projet par défaut d'origine.

1.3 Désinstallation du fichier Egg

En prenant la version python2.6 comme exemple, le fichier egg est généralement installé dans le répertoire /usr/local/lib/python2.6/dist-packages/ . Il existe également un fichier easy-install.pth utilisé pour stocker les informations sur les œufs installés. :

$ cd /usr/local/lib/python2.6/dist-packages
$ cat easy-install.pth|grep demo
./demo-0.1.0-py2.6.egg
$ ls -F|grep demo
demo-0.1.0-py2.6.egg/
Copier après la connexion
La désinstallation du fichier egg est très simple, supprimez d'abord la ligne contenant cet œuf de easy-install.pth, puis supprimez le dossier egg.

Recommandations associées : "

Tutoriel Python"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal