Se faire à la maison – Python réel

By | août 14, 2019

Python pas cher

Lorsque vous apprenez pour la première fois un nouveau langage de programmation, vous consacrez beaucoup de temps à la compréhension de la syntaxe, du style de code et des outils intégrés. Ceci est tout aussi vrai pour Python que pour tout autre langage. Une fois que vous avez acquis suffisamment de connaissances pour être à l'aise avec les rouages ​​de Python, vous pouvez commencer à investir du temps dans la création d'un environnement Python propice à votre productivité.

Votre shell est plus qu'un programme préconfiguré qui vous est fourni tel quel. C’est un cadre sur lequel vous pouvez construire un écosystème. Cet écosystème s'adapte à vos besoins pour vous permettre de passer moins de temps à bidouiller et plus de temps à réfléchir au prochain grand projet sur lequel vous travaillez.

Bien qu'il n'y ait pas deux développeurs ayant la même configuration, il existe un certain nombre de choix auxquels tout le monde est confronté lorsqu'il cultive son environnement Python. Il est important de comprendre chacune de ces décisions et les options qui s’offrent à vous!

À la fin de cet article, vous pourrez répondre aux questions suivantes:

  • Quelle coque dois-je utiliser? Quel terminal devrais-je utiliser?
  • Quelle version (s) de Python puis-je utiliser?
  • Comment gérer les dépendances pour différents projets?
  • Comment puis-je faire en sorte que mes outils effectuent une partie du travail pour moi?

Une fois que vous avez répondu à ces questions, vous pouvez vous lancer dans la création d’un environnement Python que vous appellerez le vôtre. Commençons!

Coquilles

Lorsque vous utilisez une interface de ligne de commande (CLI), vous exécutez des commandes et consultez leur résultat. UNE coquille est un programme qui vous fournit cette interface (généralement textuelle). Les shells fournissent souvent leur propre langage de programmation que vous pouvez utiliser pour manipuler des fichiers, installer des logiciels, etc.

Il existe plus de coquillages uniques que ce qui pourrait être raisonnablement énuméré ici. Vous en verrez donc quelques-uns importants. D'autres diffèrent par la syntaxe ou les fonctionnalités améliorées, mais elles fournissent généralement les mêmes fonctionnalités principales.

Coques Unix

Unix est une famille de systèmes d'exploitation développée au tout début de l'informatique. La popularité d’Unix a duré aujourd’hui, inspirant fortement Linux et macOS. Les premiers shells ont été développés pour être utilisés avec les systèmes d'exploitation Unix et de type Unix.

Bourne Shell (sh)

Le shell Bourne – mis au point par Stephen Bourne pour Bell Labs en 1979 – a été l’un des premiers à incorporer l’idée des variables d’environnement, des conditions et des boucles. Il a fourni une base solide à de nombreux autres réservoirs utilisés aujourd'hui et reste disponible sur la plupart des systèmes sur / bin / sh.

Bourne-Again Shell (frapper)

Construit sur le succès du shell Bourne original, frapper introduit de meilleures fonctionnalités d'interaction utilisateur. Avec frapper, vous recevez Languette achèvement, historique et recherche par caractère générique de commandes et de chemins. le frapper Le langage de programmation fournit plus de types de données, comme les tableaux.

Z Shell (zsh)

zsh combine plusieurs des meilleures caractéristiques d'autres coques avec quelques-uns de ses propres astuces en une seule expérience. zsh offre une correction automatique des commandes mal orthographiées, un raccourci pour manipuler plusieurs fichiers et des options avancées pour personnaliser votre invite de commande.

zsh fournit également un cadre pour une personnalisation en profondeur. Le projet Oh My Zsh fournit un riche ensemble de thèmes et de plug-ins, et est souvent utilisé conjointement avec zsh.

macOS sera livré avec zsh comme shell par défaut, à commencer par Catalina, ce qui en dit long sur la popularité du shell. Pensez à vous familiariser avec zsh maintenant afin que vous soyez à l'aise avec l'avenir.

Xonsh

Si vous vous sentez particulièrement aventureux, vous pouvez essayer Xonsh. Xonsh est un shell qui combine certaines fonctionnalités d'autres shells de type Unix avec la puissance de la syntaxe Python. Vous pouvez utiliser le langage que vous connaissez déjà pour accomplir des tâches sur votre système de fichiers, etc.

Bien que Xonsh soit puissant, il manque la compatibilité que les autres coques ont tendance à partager. En conséquence, vous ne pourrez peut-être pas exécuter beaucoup de scripts de shell existants dans Xonsh. Si vous trouvez que vous aimez Xonsh, mais que la compatibilité pose problème, vous pouvez utiliser Xonsh en complément de vos activités dans un shell plus répandu.

Coquilles Windows

À l'instar des systèmes d'exploitation de type Unix, Windows offre également un certain nombre d'options en ce qui concerne les shells. Les interpréteurs de commandes proposés dans Windows varient en termes de fonctionnalités et de syntaxe. Par conséquent, vous devrez peut-être en essayer plusieurs pour en trouver un que vous préférez.

CMD (cmd.exe)

CMD (abréviation de «command») est le shell CLI par défaut pour Windows. C’est le prédécesseur de COMMAND.COM, le shell construit pour DOS (système d’exploitation sur disque).

Du fait que DOS et Unix ont évolué indépendamment, les commandes et la syntaxe de CMD sont très différentes des shells construits pour les systèmes de type Unix. Cependant, CMD fournit toujours les mêmes fonctionnalités de base pour la navigation et la manipulation de fichiers, l'exécution de commandes et l'affichage des résultats.

PowerShell

PowerShell est sorti en 2006 et est également livré avec Windows. Il fournit des alias de type Unix pour la plupart des commandes. Ainsi, si vous utilisez Windows sous MacOS ou Linux, ou si vous devez utiliser les deux, PowerShell peut s'avérer très utile.

PowerShell est beaucoup plus puissant que CMD. Avec PowerShell, vous pouvez:

  • Pipe la sortie d'une commande à l'entrée d'une autre
  • Automatiser des tâches via les fonctionnalités de gestion Windows exposées
  • Utilisez un langage de script pour accomplir des tâches complexes

Sous-système Windows pour Linux

Microsoft a publié un sous-système Windows pour Linux (WSL) permettant d’exécuter Linux directement sous Windows. Si vous installez WSL, vous pouvez utiliser zsh, frapper, ou tout autre shell de type Unix. Si vous souhaitez une compatibilité renforcée entre vos environnements Windows et macOS ou Linux, assurez-vous d'essayer WSL. Vous pouvez également envisager une double initialisation de Linux et Windows comme alternative.

Voir cette comparaison des commandes shell pour une couverture exhaustive.

Emulateurs de terminal

Les premiers développeurs ont utilisé terminaux pour interagir avec un ordinateur central. C'étaient des périphériques avec un clavier et un écran ou une imprimante pouvant afficher une sortie calculée.

Aujourd'hui, les ordinateurs sont portables et ne nécessitent pas d'appareils distincts pour interagir avec eux, mais la terminologie demeure. Alors qu’un shell fournit l’invite et l’interpréteur que vous utilisez pour vous connecter aux outils CLI textuels, un terminal émulateur (souvent abrégé à Terminal) est l'application graphique que vous exécutez pour accéder au shell.

Presque tous les terminaux rencontrés doivent prendre en charge les mêmes fonctionnalités de base:

  • Couleurs du texte pour mettre en surbrillance la syntaxe dans votre code ou distinguer un texte significatif dans le résultat de la commande
  • Défilement pour afficher une commande antérieure ou sa sortie
  • Copier coller pour transférer du texte dans ou hors du shell à partir d'autres programmes
  • Onglets pour exécuter plusieurs programmes à la fois ou pour séparer votre travail en différentes sessions

Terminaux macOS

Les options de terminal disponibles pour macOS sont toutes complètes, se distinguant principalement par leur esthétique et leur intégration spécifique avec d’autres outils.

Terminal

Si vous utilisez un Mac, vous avez peut-être déjà utilisé l'application Terminal intégrée. Terminal prend en charge toutes les fonctionnalités habituelles. Vous pouvez également personnaliser le jeu de couleurs et quelques touches de raccourci. C’est un outil assez agréable si vous n’avez pas besoin de beaucoup de cloches et de sifflets. Vous pouvez trouver l'application Terminal dans Applications → Utilitaires → Terminal sur macOS.

iTerm2

Je suis un utilisateur de longue date d'iTerm2. L’expérience de développeur sur Mac va encore plus loin en offrant une palette beaucoup plus large d’options de personnalisation et de productivité qui vous permettent:

  • Intégrez-vous au shell pour passer rapidement aux commandes précédemment entrées
  • Créer un terme de recherche personnalisé en surbrillance dans le résultat des commandes
  • Ouvrir les URL et les fichiers affichés dans le terminal avec Cmd+Cliquez sur

Une API Python est livrée avec les dernières versions de iTerm2. Vous pouvez donc même améliorer vos performances en développant des personnalisations plus complexes!

iTerm2 est assez populaire pour profiter d'une intégration de premier ordre avec plusieurs autres outils et dispose d'une communauté saine pour la construction de plugins, etc. C’est un bon choix en raison de son cycle de publication plus fréquent que celui de Terminal, qui ne met à jour que toutes les fois que macOS.

Hyper

Nouveau venu, Hyper est un terminal basé sur Electron, un framework permettant de créer des applications de bureau utilisant les technologies Web. Les applications Electron sont fortement personnalisables car elles ne sont «que du JavaScript». Vous pouvez créer toute fonctionnalité pour laquelle vous pouvez écrire du code JavaScript.

En revanche, JavaScript est un langage de programmation de haut niveau et ne fonctionne pas toujours aussi bien que les langages de bas niveau tels que Objective-C ou Swift. Pensez aux plugins que vous installez ou créez!

Terminaux Windows

Comme pour les options du shell, les options du terminal Windows varient considérablement selon les utilitaires. Certains sont également liés à un shell particulier.

Invite de commande

Invite de commandes est l'application graphique que vous pouvez utiliser pour utiliser CMD sous Windows. Comme CMD, c’est un outil simple pour réaliser quelques petites tâches. Bien que l’invite de commande et CMD offrent moins de fonctionnalités que d’autres solutions, vous pouvez être sûr qu’elles seront disponibles sur presque toutes les installations Windows et à un emplacement cohérent.

Cygwin

Cygwin est une suite d'outils tiers pour Windows qui fournit un wrapper de type Unix. C’était ma configuration préférée lorsque j’étais sous Windows, mais vous pouvez envisager d’adopter le sous-système Windows pour Linux car celui-ci reçoit plus de traction et de finition.

Terminal Windows

Microsoft a récemment publié un terminal open source pour Windows 10 appelé Windows Terminal. Il vous permet de travailler avec CMD, PowerShell et même le sous-système Windows pour Linux. Si vous avez besoin de faire pas mal de travail de shell sous Windows, alors Windows Terminal est probablement votre meilleur choix!

Gestion de version Python

En choisissant votre terminal et votre shell, vous pouvez concentrer votre attention sur votre environnement Python.

Ce que vous allez éventuellement rencontrer est la nécessité d’exécuter plusieurs les versions de Python. Les projets que vous utilisez peuvent ne s'exécuter que sur certaines versions ou vous pouvez être intéressé par la création d'un projet prenant en charge plusieurs versions de Python. Vous pouvez configurer votre environnement Python pour répondre à ces besoins.

Mac OS et la plupart des systèmes d'exploitation Unix sont livrés avec une version de Python installée par défaut. Ceci est souvent appelé le système Python. Le système Python fonctionne très bien, mais il est généralement obsolète. À ce jour, macOS High Sierra est toujours livré avec Python 2.7.10 en tant que système Python.

Comment gérez-vous cela? L'outillage est là pour vous aider.

Pyenv

Pyenv est un outil mature pour installer et gérer plusieurs versions de Python. Je recommande de l'installer avec Homebrew. Après que vous ayez Pyenv installé, vous pouvez installer plusieurs versions de Python dans votre environnement Python avec quelques commandes courtes:

$ versions pyenv
* système
$ python --version
Python 2.7.10
$ pyenv installer 3.7.3  # Cela peut prendre un certain temps
$ versions pyenv
* système
        3.7.3

Vous pouvez gérer le Python que vous souhaitez utiliser dans votre session actuelle, globalement ou projet par projet. Pyenv fera le python commande pointez sur le Python que vous spécifiez. Notez qu’aucun de ceux-ci ne remplace le système Python par défaut pour les autres applications. Par conséquent, vous pouvez les utiliser en toute sécurité, mais ils fonctionnent le mieux dans votre environnement Python:

$ pyenv global 3.7.3
$ versions pyenv
  système
* 3.7.3 (défini par /Users/dhillard/.pyenv/version)

$ Pyenv local 3.7.3
$ versions pyenv
  système
* 3.7.3 (défini par /Users/dhillard/myproj/.python-version)

$ coquille de pyenv 3.7.3
$ versions pyenv
  système
* 3.7.3 (défini par la variable d'environnement PYENV_VERSION)

$ python --version
Python 3.7.3

Parce que j'utilise une version spécifique de Python pour le travail, la dernière version de Python pour les projets personnels et plusieurs versions pour tester les projets open source, Pyenv s’est avéré être un moyen relativement simple pour moi de gérer toutes ces versions différentes dans mon propre environnement Python. Voir Gestion de plusieurs versions de Python avec Pyenv pour un aperçu détaillé de l'outil.

conda

Si vous faites partie de la communauté des données informatiques, vous utilisez peut-être déjà Anaconda (ou Miniconda). Anaconda est une sorte de guichet unique pour les logiciels de science des données prenant en charge plus que Python.

Si vous n’avez pas besoin des packages de science des données ou de tout ce qui est pré-emballé avec Anaconda, Pyenv pourrait être une meilleure solution légère pour vous. La gestion des versions de Python est assez similaire dans chacune d’entre elles. Vous pouvez installer les versions Python de la même manière que Pyenv, en utilisant le conda commander:

$ conda installer python=3.7.3

Vous verrez une liste détaillée de tous les logiciels dépendants. conda va installer, et il vous demandera de confirmer.

conda n’a aucun moyen de définir la version Python «par défaut» ni même un bon moyen de savoir quelles versions de Python vous avez installées. Il s’agit plutôt du concept d ’« environnements », sur lequel vous pourrez en savoir plus dans les sections suivantes.

Environnements virtuels

Vous savez maintenant comment gérer plusieurs versions de Python. Souvent, vous travaillerez sur plusieurs projets nécessitant la même Version Python.

Chaque projet ayant son propre ensemble de dépendances, il est recommandé d’éviter de les mélanger. Si toutes les dépendances sont installées ensemble dans un seul environnement Python, il sera alors difficile de déterminer l'origine de chacune d'elles. Dans le pire des cas, deux projets différents peuvent dépendre de deux versions différentes d'un package, mais avec Python, vous ne pouvez installer qu'une seule version d'un package à la fois. Quel bordel!

Entrer environnements virtuels. Vous pouvez considérer un environnement virtuel comme une copie conforme d'une version de base de Python. Si vous avez installé Python 3.7.3, par exemple, vous pouvez créer de nombreux environnements virtuels à partir de celui-ci. Lorsque vous installez un package dans un environnement virtuel, vous le faites indépendamment des autres environnements Python existants. Chaque environnement virtuel possède sa propre copie du python exécutable.

venv

venv est livré avec les versions Python 3.3+. Vous pouvez créer des environnements virtuels en leur transmettant simplement un chemin dans lequel stocker les données de l’environnement. python, paquets installés, etc.:

$ python -m venv ~ / .virtualenvs / my-env

Vous activez un environnement virtuel en recherchant ses Activer scénario:

$ la source ~ / .virtualenvs / my-env / bin / activate

Vous quittez l'environnement virtuel à l'aide de la commande désactiver Cette commande est disponible lorsque vous activez l’environnement virtuel:

venv est construit sur le travail merveilleux et les succès de l'indépendance virtualenv projet. virtualenv fournit encore quelques caractéristiques intéressantes, mais venv C'est bien parce qu'il fournit l'utilitaire des environnements virtuels sans que vous ayez à installer de logiciel supplémentaire. Vous pouvez probablement aller assez loin si vous travaillez principalement dans une seule version de Python dans votre environnement Python.

Si vous gérez déjà plusieurs versions de Python (ou prévoyez de le faire), il pourrait être judicieux d’intégrer cet outil afin de simplifier le processus de création de nouveaux environnements virtuels avec des versions spécifiques de Python. le Pyenv et conda Les écosystèmes fournissent tous deux des moyens de spécifier la version Python à utiliser lors de la création de nouveaux environnements virtuels, traités dans les sections suivantes.

pyenv-virtualenv

Si vous utilisez Pyenv, puis pyenv-virtualenv améliore Pyenv avec une sous-commande pour la gestion des environnements virtuels:

// Créer un environnement virtuel
$ pyenv virtualenv 3.7.3 my-env

// Activer l'environnement virtuel
$ pyenv activer my-env

// Quitter l'environnement virtuel
(my-env) $ pyenv désactiver

Je change de contextes entre plusieurs projets au jour le jour. En conséquence, j'ai au moins une douzaine d'environnements virtuels distincts à gérer dans mon environnement Python. Ce qui est vraiment sympa pyenv-virtualenv est-ce que vous pouvez configurer un environnement virtuel en utilisant le pyenv local commander et avoir pyenv-virtualenv Activez automatiquement les environnements appropriés lorsque vous passez à différents répertoires:

$ pyenv virtualenv 3.7.3 proj1
$ pyenv virtualenv 3.7.3 proj2
$ CD / Utilisateurs / dhillard / proj1
$ Pyenv local proj1
(proj1) $ CD ../proj2
$ Pyenv local proj2
(proj2) $ versions pyenv
  système
        3.7.3
        3.7.3 / envs / proj1
        3.7.3 / envs / proj2
        proj1
* proj2 (défini par /Users/dhillard/proj2/.python-version)

Pyenv et pyenv-virtualenv ont fourni un flux de travail particulièrement fluide dans mon environnement Python.

conda

Vous avez vu plus tôt que conda considère les environnements plutôt que les versions de Python comme la méthode principale de travail. conda prend en charge la gestion des environnements virtuels:

// Créer un environnement virtuel
$ conda create --name my-env python=3.7.3

// Activer l'environnement virtuel
$ conda activer mon env

// Quitter l'environnement virtuel
(my-env) $ désactiver

conda installera la version spécifiée de Python si elle n’est pas déjà installée, vous n’aurez donc pas à exécuter conda install python = 3.7.3 premier.

pipenv

pipenv est un outil relativement nouveau qui cherche à associer la gestion de paquets (plus à ce sujet dans un instant) à la gestion d’environnement virtuel. Cela vous abstrait principalement de la gestion de l’environnement virtuel, ce qui peut être formidable tant que tout se passe bien:

$ CD / Utilisateurs / dhillard / myproj

// Créer un environnement virtuel
$ pipenv installer
Créer une virtualenv pour ce projet…
Pipfile: / Users / dhillard / myproj / Pipfile
Utiliser /path/to/pipenv/python3.7 (3.7.3) pour créer virtualenv…
✔ Environnement virtuel créé avec succès!
Emplacement Virtualenv: /Users/dhillard/.local/share/virtualenvs/myproj-nAbMEAt0
Créer un Pipfile pour ce projet…
Pipfile.lock non trouvé, créant…
Verrouillage [dev-packages] dépendances…
Verrouillage [packages] dépendances…
Mise à jour de Pipfile.lock (a65489)!
Installation de dépendances à partir de Pipfile.lock (a65489)…
        ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 - 00:00:00
Pour activer le fichier virtualenv de ce projet, exécutez pipenv shell.
Vous pouvez également exécuter une commande dans virtualenv avec pipenv.

// Activer l'environnement virtuel (utilise un sous-shell)
$ pipenv shell
Lancer un sous-shell dans un environnement virtuel…
    . /Users/dhillard/.local/share/virtualenvs/test-nAbMEAt0/bin/activate

// Quitter l'environnement virtuel (en quittant le sous-shell)
(myproj-nAbMEAt0) $ sortie

pipenv est chargé de créer un environnement virtuel et de l’activer pour vous. Si vous regardez attentivement, vous pouvez voir qu’il crée également un fichier appelé Pipfile. Après votre première course pipenv installer, ce fichier ne contient que quelques éléments:

[[source]]
prénom = "pypi"
url = "https://pypi.org/simple"
verify_ssl = vrai

[dev-packages]

[packages]

[requires]
python_version = "3.7"

En particulier, notez que cela montre python_version = "3.7". Par défaut, pipenv crée un environnement virtuel Python en utilisant la même version de Python sous laquelle il a été installé. Si vous souhaitez utiliser une version différente de Python, vous pouvez créer le Pipfile toi avant de courir pipenv installer et spécifiez la version que vous voulez. Si tu as Pyenv installé, puis pipenv l'utilisera pour installer la version spécifiée de Python si nécessaire.

Abstraction de la gestion de l’environnement virtuel est un objectif noble de pipenv, mais il y a parfois des erreurs difficiles à lire. Essayez-le, mais ne vous inquiétez pas si vous vous sentez confus ou dépassé. L'outil, la documentation et la communauté grandiront et s'amélioreront au fil de sa maturation.

Pour obtenir une introduction approfondie aux environnements virtuels, veillez à lire le document intitulé Environnements virtuels Python: un guide d'introduction.

Gestion des paquets

Pour la plupart des projets sur lesquels vous travaillez, vous aurez probablement besoin d’un certain nombre de packages tiers. Ces paquets peuvent avoir leurs propres dépendances à leur tour. Dans les débuts de Python, l’utilisation de packages impliquait le téléchargement manuel de fichiers et leur pointage. Aujourd’hui, nous avons la chance de disposer d’une variété d’outils de gestion de paquets.

La plupart des gestionnaires de paquets travaillent en tandem avec des environnements virtuels, isolant les paquets que vous installez dans un environnement Python d'un autre. En utilisant les deux ensemble, vous commencez vraiment à voir la puissance des outils à votre disposition.

pépin

pépin (pip jenstalls packages) est la norme de facto pour la gestion des paquets en Python depuis plusieurs années. Il a été fortement inspiré par un outil antérieur appelé easy_install. Python incorporé pépin dans la distribution standard à partir de la version 3.4. pépin automatise le processus de téléchargement des packages et en informe Python.

Si vous avez plusieurs environnements virtuels, vous pouvez constater qu’ils sont isolés en installant quelques packages dans un:

$ pyenv virtualenv 3.7.3 proj1
$ pyenv activer proj1
(proj1) $ liste de pip
Version du package
---------- ---------
pip 19.1.1
setuptools 40.8.0

(proj1) $ python -m demandes d'installation pip
Collecte des demandes
        Téléchargement en cours ... / demandes-2.22.0-py2.py3-none-any.whl (57kB)
                100% | ████████████████████████████████ | 61 Ko 2,2 Mo / s
Collection de chardet<3.1.0,>= 3.0.2 (à partir de demandes)
        Téléchargement en cours ... / chardet-3.0.4-py2.py3-none-any.whl (133kB)
                100% | ████████████████████████████████ | 143 Ko 1,7 Mo / s
Collecting certifi> = 2017.4.17 (à partir de demandes)
        Téléchargement en cours ... / certifi-2019.6.16-py2.py3-none-any.whl (157kB)
                100% | ████████████████████████████████ | 163kB 6.0MB / s
Collecte de urllib3! = 1.25.0,! = 1.25.1,<1.26,>= 1.21.1 (à partir de demandes)
        Téléchargement en cours ... / urllib3-1.25.3-py2.py3-none-any.whl (150 ko)
                100% | ████████████████████████████████ | 153 Ko 1,7 Mo / s
Collecte d'idna<2.9,>= 2.5 (à partir de demandes)
        Téléchargement en cours ... / idna-2.8-py2.py3-none-any.whl (58ko)
                100% | ████████████████████████████████ | 61 Ko 26,6 Mo / s
Installation des paquets collectés: chardet, certifi, urllib3, idna, requêtes
Paquets installés avec succès

$ liste de pip
Version du package
---------- ---------
certifi 2019.6.16
chardet 3.0.4
idna 2.8
pip 19.1.1
demandes 2.22.0
setuptools 40.8.0
urllib3 1.25.3

pépin installée demandes, ainsi que plusieurs paquets qui en dépendent. liste de pip vous montre tous les packages actuellement installés et leurs versions.

Un moyen courant de spécifier des dépendances de projet pour pépin est avec un exigences.txt fichier. Chaque ligne du fichier spécifie un nom de package et, éventuellement, la version à installer:

scipy==1.3.0
demandes==2,22.0

Vous pouvez ensuite courir python -m pip installer -r exigences.txt installer toutes les dépendances spécifiées à la fois. Pour plus sur pépin, voir Qu'est-ce que Pip? Un guide pour les nouveaux pythonistes.

pipenv

pipenv a la plupart des mêmes opérations de base que pépin mais pense aux paquets un peu différemment. Se souvenir du Pipfile cette pipenv crée? Quand vous installez un paquet, pipenv ajoute ce paquet à Pipfile et ajoute également des informations plus détaillées à un nouveau fichier de verrouillage appelé Pipfile.lock. Les fichiers de verrouillage agissent comme une capture instantanée de l’ensemble précis de packages installés, y compris les dépendances directes ainsi que leurs sous-dépendances.

Tu peux voir pipenv trier la gestion des paquets lorsque vous installez un paquet:

$ demandes d'installation pipenv
Installer des demandes…
Ajout de demandes à Pipfile [packages]…
✔ Installation réussie
Pipfile.lock (444a6d) obsolète, mise à jour en (a65489)…
Verrouillage [dev-packages] dépendances…
Verrouillage [packages] dépendances…
✔ le succès!
Mise à jour de Pipfile.lock (444a6d)!
Installation de dépendances à partir de Pipfile.lock (444a6d)…
        00 5/5 - 00:00:00

pipenv utilisera ce fichier de verrouillage, le cas échéant, pour installer le même ensemble de packages. Vous pouvez vous assurer de toujours avoir le même ensemble de dépendances de travail dans tous les environnements Python que vous créez en utilisant cette approche.

pipenv distingue également entre dépendances de développement et dépendances de production (régulières). Vous aurez peut-être besoin d'outils pendant le développement, tels que noir ou flake8, dont vous n’avez pas besoin lorsque vous exécutez votre application en production. Vous pouvez spécifier qu'un package est destiné au développement lors de son installation:

$ pipenv installer --dev flake8
Installation de flake8…
Ajout de flake8 à Pipfile [dev-packages]…
✔ Installation réussie
...

pipenv installer (sans aucun argument) installera uniquement vos packages de production par défaut, mais vous pouvez lui indiquer d’installer également les dépendances de développement avec pipenv installer --dev.

poésie

poésie aborde des facettes supplémentaires de la gestion des paquets, y compris la création et la publication de vos propres paquets. Après l'installation poésie, vous pouvez l’utiliser pour créer un nouveau projet:

$ poésie nouvelle myproj
Paquet créé myproj dans myproj
$ ls myproj /
README.rst myproj pyproject.toml tests

De même à comment pipenv crée le Pipfile, poésie crée un pyproject.toml fichier. Cette norme récente contient des métadonnées sur le projet ainsi que des versions de dépendance:

[tool.poetry]
prénom = "myproj"
version = "0.1.0"
la description = ""
auteurs = ["DaneHillard["DaneHillard["DaneHillard["DaneHillard"]

[tool.poetry.dependencies]
python = "^ 3.7"

[tool.poetry.dev-dependencies]
pytest = "^ 3.0"

[build-system]
a besoin = ["poetry>=0.12"]
construire-backend = "poésie.masonry.api"

Vous pouvez installer des packages avec poésie ajouter (ou en tant que dépendances de développement avec poésie ajouter --dev):

$ poésie ajouter des demandes
Utiliser la version ^ 2.22 pour les requêtes

Mise à jour des dépendances
Résolution des dépendances ... (0.2s)

Écrire un fichier de verrouillage


Opérations sur les packages: 5 installations, 0 mises à jour, 0 suppressions

        - Installation de certifi (2019.6.16)
        - Installation de chardet (3.0.4)
        - Installation d'idna (2.8)
        - Installation de urllib3 (1.25.3)
        - Installation de requêtes (2.22.0)

poésie maintient également un fichier de verrouillage, et il a un avantage sur pipenv car il garde trace des paquets qui sont des sous-dépendances. En conséquence, vous pouvez désinstaller demandes et ses dépendances avec poésie supprimer les demandes.

conda

Avec conda, vous pouvez utiliser pépin installer des paquets comme d’habitude, mais vous pouvez aussi utiliser conda installer installer des paquets de différents canaux , qui sont des collections de paquets fournis par Anaconda ou d’autres fournisseurs. À installer demandes du Conda-Forge canal, vous pouvez courir conda installe -c les requêtes de forge.

En savoir plus sur la gestion des paquets en conda dans Configuration de Python pour l’apprentissage automatique sur Windows.

Interprètes python

Si vous souhaitez personnaliser davantage votre environnement Python, vous pouvez choisir l'expérience de ligne de commande que vous avez lors de l'interaction avec Python. L'interpréteur Python fournit une boucle lecture-évaluation-impression (REPL), qui est ce qui apparaît lorsque vous tapez python sans argument dans votre shell:

>>>

Python 3.7.3 (défaut, 17 juin 2019, 14:09:05)
[Clang 10.0.1 (clang-1001.0.46.4)]    sur darwin
Tapez "aide", "copyright", "crédits" ou "licence" pour plus d'informations.
>>> 2 + 2
4
>>> sortie()

Le REPL lit ce que vous tapez, évalue en tant que code Python, et empreintes le résultat. Ensuite, il attend de tout recommencer. C’est à peu près autant que le fournit par défaut Python REPL, ce qui est suffisant pour une bonne partie du travail typique.

IPython

Comme Anaconda, IPython est une suite d’outils prenant en charge plus que Python, mais l’une de ses principales caractéristiques est une alternative Python REPL. REPL d’IPython numérote chaque commande et identifie explicitement ses entrées et ses sorties. Après avoir installé IPython (python -m pip installer ipython), vous pouvez exécuter le ipython commande à la place du python commande pour utiliser le REPL IPython:

>>>

Python 3.7.3
Tapez 'copyright', 'credits' ou 'license' pour plus d'informations
IPython 6.0.0.dev - Python interactif amélioré. Tapez '?' pour aider.

Dans [1]: 2 + 2
En dehors[1]: 4

Dans [2]: impression("Bonjour!")
En dehors[2]: Bonjour!

IPython prend également en charge Languette l’achèvement, des fonctions d’aide plus puissantes et une intégration poussée avec d’autres outils tels que matplotlib pour les graphiques. IPython a jeté les bases de Jupyter et les deux logiciels ont été largement utilisés dans la communauté des données informatiques en raison de leur intégration à d’autres outils.

IPython REPL est également hautement configurable. Par conséquent, même s’il ne manque pas d’être un environnement de développement complet, il peut néanmoins être bénéfique pour votre productivité. Ses commandes magiques intégrées et personnalisables valent le détour.

bpython

bpython REPL est une autre alternative qui fournit une coloration syntaxique en ligne, la complétion par des tabulations et même des suggestions automatiques au fur et à mesure de la frappe. Il fournit de nombreux avantages rapides d’IPython sans modifier l’interface. Sans le poids des intégrations et ainsi de suite, bpython Il serait peut-être bon d’ajouter quelque temps à votre répertoire pour voir comment cela améliore votre utilisation du REPL.

Editeurs de texte

Vous passez un tiers de votre vie à dormir, il est donc logique d'investir dans un bon lit. En tant que développeur, vous passez une grande partie de votre temps à lire et à écrire du code. Vous devez donc investir du temps dans la configuration de l’éditeur de texte de votre environnement Python exactement comme vous le souhaitez.

Chaque éditeur propose un ensemble différent de raccourcis clavier et un modèle de manipulation de texte. Certains ont besoin d'une souris pour interagir efficacement avec eux, alors que d'autres peuvent être contrôlés uniquement avec le clavier. Certaines personnes considèrent leur choix d'éditeur de texte et de personnalisation comme l'une des décisions les plus personnelles qu'elles prennent!

Il y a tellement d'options à choisir dans cette arène, je ne vais donc pas essayer de l'expliquer en détail ici. Consultez les IDE Python et les éditeurs de code (Guide) pour une vue d'ensemble. Une bonne stratégie consiste à trouver un petit éditeur de texte simple pour des changements rapides et un IDE complet pour un travail plus complexe. Vim et PyCharm, respectivement, sont mes éditeurs de choix.

Trucs et astuces sur l'environnement Python

Une fois que vous avez pris les grandes décisions concernant votre environnement Python, le reste de la route est pavé de petites modifications pour vous simplifier la vie. Ces réglages permettent d’économiser des minutes ou des secondes, mais ils vous épargnent collectivement des heures.

Faciliter une certaine activité réduit votre charge cognitive et vous permet de vous concentrer sur la tâche à accomplir plutôt que sur la logistique qui l’entoure. Si vous remarquez que vous effectuez une action à plusieurs reprises, envisagez de l’automatiser. Utilisez ce magnifique tableau de XKCD pour déterminer s’il est intéressant d’automatiser une tâche particulière.

Voici quelques conseils finaux.

Connaissez votre environnement virtuel actuel

Comme mentionné précédemment, il est judicieux d’afficher la version active de Python ou l’environnement virtuel dans votre invite de commande. La plupart des outils le feront pour vous, mais si ce n’est pas le cas (ou si vous souhaitez personnaliser l’invite), la valeur est généralement contenue dans VIRTUAL_ENV variable d'environnement.

Désactiver les fichiers temporaires inutiles

Avez-vous jamais remarqué * .pyc des fichiers dans tous les répertoires de votre projet? Ces fichiers sont des bytecodes Python pré-compilés – ils aident Python à démarrer votre application plus rapidement. En production, c’est une excellente idée car ils vous apporteront un gain de performance. Au cours du développement local, cependant, ils sont rarement utiles. Ensemble PYTHONDONTWRITEBYTECODE = 1 pour désactiver ce comportement. Si vous trouvez des cas d'utilisation plus tard, vous pouvez facilement le supprimer de votre environnement Python.

Personnalisez votre interprète Python

Vous pouvez affecter le comportement du REPL en utilisant un fichier de démarrage. Python lit ce fichier de démarrage et exécute le code qu'il contient avant d'entrer dans le REPL. Met le PYTHONSTARTUP variable d’environnement sur le chemin de votre fichier de démarrage. (Le mien à ~ / .pystartup.) Si vous souhaitez frapper Up pour l'historique des commandes et Languette Pour que ce soit terminé comme le propose votre shell, essayez ce fichier de démarrage.

Conclusion

Vous avez découvert de nombreuses facettes de l'environnement Python typique. Armé de cette connaissance, vous pouvez:

  • Choisissez un terminal avec l'esthétique et les fonctionnalités améliorées que vous aimez
  • Choisissez un shell avec autant d'options de personnalisation que vous le souhaitez
  • Gérez plusieurs versions de Python sur votre système
  • Gérez plusieurs projets utilisant une seule version de Python, à l'aide d'environnements Python virtuels
  • Installer des packages dans vos environnements virtuels
  • Choisissez un REPL adapté à vos besoins de codage interactif

Une fois votre environnement Python créé, j'espère que vous partagerez des captures d'écran, des screencasts ou des articles de blog sur votre configuration parfaite.