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

Comment installer l'œuf Python

藏色散人
藏色散人original
2019-07-05 09:20:5013752parcourir

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

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

Mettez à jour setuptools : :

$ sudo python ez_setup.py -U setuptools

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

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

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()

À 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

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

$ ls -F
build/ dist/ setup.py UNKNOWN.egg-info/

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

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

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 = "",
        )

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'm amoblin."
if __name__ == '__main__':
    test()

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

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

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

$ python -c "from demo import test;test()"
Hello, I'm amoblin.

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('src'),
package_dir = {'':'src'}

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/

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!

Déclaration:
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