Présentation

Les applications Python utiliseront régulièrement des bundles et des modules qui ne font pas partie de la bibliothèque standard. De temps en temps, les applications auront besoin d’une adaptation particulière d’une bibliothèque, au motif que l’application peut nécessiter qu’un bogue spécifique ait été corrigé ou que l’application peut être composée en utilisant une forme obsolète de l’interface de la bibliothèque.

Cela implique qu’il peut ne pas être possible pour un établissement Python de remplir les conditions préalables de chaque application. Si l’application A a besoin de l’adaptation 1.0 d’un module spécifique alors que l’application B a besoin du formulaire 2.0, les conditions préalables sont alors difficiles à remplir et l’introduction du formulaire 1.0 ou 2.0 rendra une application incapable de fonctionner.

La réponse à cette question est de créer un domaine virtuel, un arbre de registre indépendant qui contient un établissement Python pour une forme spécifique de Python, en plus de certains des paquets supplémentaires.

Diverses applications seraient alors en mesure d’utiliser diverses situations virtuelles. Pour déterminer le cas précédent de nécessité de conflit, l’application A peut avoir sa propre condition virtuelle avec la variante 1.0 introduite tandis que l’application B a une autre condition virtuelle avec la forme 2.0. Si l’application B nécessite qu’une bibliothèque soit déplacée vers la variante 3.0, cela n’influencera pas la situation de l’application A.

12.2. Rendre les situations virtuelles

Le module utilisé pour créer et superviser des situations virtuelles s’appelle venv. venv présente généralement la dernière variante de Python à laquelle vous avez accès. Si, par hasard, vous disposez de diverses adaptations de Python sur votre framework, vous pouvez choisir une forme particulière de Python en exécutant python3 ou tout autre rendu dont vous avez besoin.

Pour créer un domaine virtuel, il faut s’installer sur un registre où il faut le mettre, et exécuter le module venv comme contenu avec la manière index :

python3 -m venv tutorial-env

Cela rendra l’exercice pédagogique env catalogue dans le cas où il n’existe pas, et en outre faire des index à l’intérieur de celui-ci contenant une copie du traducteur Python, la bibliothèque standard, et différents documents d’appui.

Une zone de catalogue typique pour une situation virtuelle est le .venv. Ce nom permet de garder le catalogue normalement couvert dans votre plat et donc hors des sentiers battus tout en lui donnant un nom qui clarifie la raison d’être du registre. De même, il permet d’éviter les conflits avec les enregistrements de définition de variables d’état .env que certains outils soutiennent.

Lorsque vous avez créé une situation virtuelle, vous pouvez l’activer.

Sur Windows, courez :

tutorial-env\Scripts\activate.bat

Sous Unix ou MacOS, courez :

source tutorial-env/bin/activate

(Ce script est écrit pour le shell bash. Si vous utilisez le csh ou les fish shells, il existe d’autres scripts activate.csh et activate.fish que vous devriez utiliser à la place).

Le lancement de la condition virtuelle modifiera la mémoire de votre shell pour montrer quelle condition virtuelle vous utilisez, et modifiera la nature dans le but que l’exécution de python vous donne cette forme spécifique et l’établissement de python. Par exemple :

(tutorial-env) $ python

Python 3.5.1 (par défaut, 6 mai 2016, 10:59:36)

  …

>>> importation de systèmes

>>> sys.path

[”, ‘/usr/local/lib/python35.zip’, …,

~/envs/tutorial-env/lib/python3.5/site-packages’]

Gérer les paquets avec pip

Surveiller les ballots avec doigté

Vous pouvez introduire, réviser et expulser des paquets en utilisant un programme appelé pip. Bien entendu, pip introduira les paquets à partir du fichier Python Bundle File, <https://pypi.org>. Vous pouvez consulter le fichier Python Bundle Record en y accédant dans votre navigateur Internet, ou vous pouvez utiliser le surlignage de chasse contraint de pip :

(tutorial-env) $ pip recherche astronomie

skyfield – L’astronomie élégante pour Python

gary – Astronomie galactique et dynamique gravitationnelle.

novas – La bibliothèque d’astronomie de l’Observatoire naval des États-Unis NOVAS

astroobs – Fournit des éphémérides astronomiques pour planifier les observations au télescope

PyAstronomy – Une collection d’outils liés à l’astronomie pour Python.

pip dispose d’un certain nombre de sous-commissions : “search”, “install”, “uninstall”, “freeze”, etc. (Consultez le guide d’installation des modules Python pour une documentation complète sur pip).

Vous pouvez installer la dernière version d’un paquet en précisant le nom du paquet :

(tutorial-env) $ pip install novas

Collecte des novas

  Téléchargement de novas-3.1.1.3.tar.gz (136kB)

Installation des paquets collectés : novas

  Exécution de l’installation de setup.py pour les novas

Installation réussie de novas-3.1.1.3

Vous pouvez également installer une version spécifique d’un paquet en donnant le nom du paquet suivi de == et le numéro de version :

(tutorial-env) $ pip install requests==2.6.0

Collecte des demandes==2.6.0

  Utilisation des requêtes mises en cache-2.6.0-py2.py3-none-any.whl

Installation des paquets collectés : demandes

Demandes installées avec succès-2.6.0

Si vous renouvelez cette commande, pip verra que la variante mentionnée est désormais introduite et restera inactive. Vous pouvez fournir un autre numéro d’adaptation pour obtenir ce formulaire, ou vous pouvez lancer pip introduce – remonter pour mettre à jour le lot avec la variante la plus récente :

tutorial-env) $ pip install –upgrade requests

Collecte des demandes

Installation des paquets collectés : demandes

  Installation existante trouvée : demandes 2.6.0

    Désinstallation des demandes-2.6.0 :

      Demandes désinstallées avec succès-2.6.0

Demandes installées avec succès-2.7.0

pip uninstall suivi d’un ou plusieurs noms de paquets supprimera les paquets de l’environnement virtuel.

pip show affichera des informations sur un paquet particulier :

(tutorial-env) $ pip show requests

Version des métadonnées : 2.0

Nom : demandes

Version : 2.7.0

Résumé : Python HTTP pour les humains.

Page d’accueil : http://python-requests.org

Auteur : Kenneth Reitz

Courriel de l’auteur : me@kennethreitz.com

Licence : Apache 2.0

Localisation : /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages

Requiert :

pip list affichera tous les paquets installés dans l’environnement virtuel :

(tutorial-env) $ pip list

novas (3.1.1.3)

numpy (1.9.2)

pip (7.0.3)

demandes (2.7.0)

outils d’installation (16.0)

pip freeze produira une liste similaire des paquets installés, mais la sortie utilise le format que pip install attend. Une convention courante consiste à mettre cette liste dans un fichier requirements.txt :

(tutorial-env) $ pip freeze > requirements.txt

(tutorial-env) $ cat requirements.txt

novas==3.1.1.3

numpy==1.9.2

demandes==2.7.0

Le fichier requirements.txt peut alors être soumis au contrôle de version et expédié dans le cadre d’une application. Les utilisateurs peuvent ensuite installer tous les paquets nécessaires avec install -r :

(tutorial-env) $ pip install -r requirements.txt

Collecte des novas==3.1.1.3 (à partir de -r requirements.txt (ligne 1))

  …

Collecte numpy==1.9.2 (à partir de -r requirements.txt (ligne 2))

  …

Collecte des demandes==2.7.0 (à partir de -r requirements.txt (ligne 3))

  …

Installation des paquets collectés : novas, numpy, requêtes

  Exécution de l’installation de setup.py pour les novas

Installation réussie de novas-3.1.1.3 numpy-1.9.2 requests-2.7.0