L'article original est ici
Il s'agit de la gestion des packages Python et des outils de gestion des environnements virtuels.
J'utilise Pipenv normalement, mais j'ai toujours utilisé poetry correctement. Je ne l'ai pas fait, alors j'ai essayé.
Créez des dossiers de projet pour 3.7 et 2.7 avec poésie, exécutez poetry run python --version
dans chaque dossier, et si la version Python affichée est différente, elle réussira.
Recommandé dans Méthode d'installation officielle de la poésie
curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
Avec cette méthode, il existe les problèmes suivants dans Windows.
python
atteint un mystérieux python.exe qui n'est ni Python 2.7 ni 3.7.--preview
pour installer 1.0.0bxx, mais il ne semble y avoir aucun moyen d'ajouter l'option de cette façon.Tout d'abord, en ce qui concerne le mystérieux problème de python.exe
, cela est dû à ** l'alias d'exécution d'application ** qui semble avoir été introduit relativement récemment dans Windows 10. Lorsque vous ouvrez Paramètres Windows-> Applications et fonctionnalités-> Alias d'exécution d'applications, il existe ** App Installer (python.exe) ** et ** App Installer (python3.exe) **, alors désactivez-les. (Bien que vous puissiez modifier la priorité des chemins)
Concernant le deuxième point, il n'y a pas d'autre choix que de passer à une autre méthode d'installation. Bien qu'il soit obsolète dans la documentation, il sera installé globalement par l'utilisateur avec la commande pip, tout comme Pipenv. Attendons la méthode recommandée pour l'installer correctement. Avec cette méthode, vous devez définir manuellement le chemin du dossier contenant les deux fichiers poetry et poetry.bat (cette fois, il a été installé dans Python 3.7, donc % APPDATA% \ Python \ Python37 \ Scripts
).
py -3 -m pip install --user --pre poetry
dans un shell tel que Powershell% APPDATA% \ Python \ Python37 \ Scripts
à la variable d'environnement PATHpoetry --version
sur le shell, cette fois il retournera Poetry version 1.0.0b8
Ceci complète l'installation de poésie.
poetry gère également l'environnement virtuel (virtualenv), mais par défaut l'emplacement de l'environnement virtuel est % USERDIR% \ Local \ pypoetry \ Cache \ virtualenvs
. Comme il peut être plus facile de créer un environnement virtuel dans le dossier du projet à utiliser avec Visual Studio Code, etc., modifiez certains paramètres de poésie.
> poetry config --list
cache-dir = "C:\\Users\\xxxxxxxx\\AppData\\Local\\pypoetry\\Cache"
virtualenvs.create = true
virtualenvs.in-project = false (← Je veux que cela soit vrai)
virtualenvs.path = "{cache-dir}\\virtualenvs"
> poetry config virtualenvs.in-project true
> poetry config --list
cache-dir = "C:\\Users\\xxxxxxxx\\AppData\\Local\\pypoetry\\Cache"
virtualenvs.create = true
virtualenvs.in-project = true
virtualenvs.path = "{cache-dir}\\virtualenvs"
Si vous laissez la poésie créer un environnement virtuel dans cet état, il sera créé dans [dossier de projet] \ .venv
.
Utilisons maintenant la poésie pour créer un projet Python 3.7 et un projet 2.7. Puisque la poésie est installée dans Python 3.7 cette fois, un projet pour Python 3.7 sera créé sauf indication contraire.
> poetry new py3test
Created package py3test in py3test
> cd py3test
> poetry install
Creating virtualenv py3test in C:\Work\py3test\.venv
Updating dependenciesResolving dependencies... (0.4s)
(pytest et les packages dépendants seront installés)
> poetry run python --version
Python 3.7.5
Ensuite, créez un projet pour Python 2.7. Les points sont les deux points suivants.
> cd ..
> poetry new py2test
Created package py2test in py2test
> cd py2test
[Important] Ici pyproject.Editez toml.
python = "^3.7" → python = "^2.7"
pytest = "^5.2" → pytest = "^4.6"
> poetry env use C:\Python27\python.exe
Creating virtualenv py2test in C:\Work\py2test\.venv
Using virtualenv: C:\Work\py2test\.venv
> poetry install
Updating dependencies
Resolving dependencies... (1.1s)
(pytest et les packages dépendants seront installés)
> poetry run python --version
Python 2.7.17
Pour confirmation, passons au projet pour Python 3.7.
> cd ..\py3test
> poetry run python --version
Python 3.7.5
Vous pouvez voir que l'environnement virtuel Python est utilisé correctement en fonction du dossier actuel. C'est la fin de l'expérience.
J'ai pu utiliser l'environnement virtuel avec de la poésie en utilisant Py Launcher au lieu de pyenv sur Windows. Je pense qu'il pourrait probablement être utilisé de cette façon, mais pour l'instant, je pense que Pipenv est toujours plus facile sous Windows.
Recommended Posts