web-dev-qa-db-fra.com

La poésie n'utilise pas la version correcte de Python

J'ai récemment installé Pyenv et Poetry et je souhaite créer un nouveau projet Python 3.8. J'ai défini les versions global et local de = python à 3.8.1 à l'aide des commandes Pyenv appropriées (pyenv global 3.8.1 par exemple). Quand je cours pyenv version dans mon terminal, la sortie est 3.8.1. comme prévu.

Maintenant, le problème est que lorsque je crée un nouveau projet python avec Poetry (poetry new my-project), le pyproject.toml file crée un projet avec python 2.7:

[tool.poetry]
name = "my-project"
version = "0.1.0"
description = ""
authors = ["user <[email protected]>"]

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

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

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

Il semble que Poetry revient par défaut à la version système de Python. Comment changer cela pour qu'il utilise la version installée avec Pyenv?

Modifier

J'utilise MacOS, qui est livré avec Python 2.7. Je pense que cela pourrait causer certains des problèmes ici. J'ai réinstallé Python 3.8 à nouveau avec Pyenv, mais quand je frappe Poetry install J'obtiens l'erreur suivante:

The currently activated Python version 2.7.16 is not supported by the project (^3.8).
Trying to find and use a compatible version.

[NoCompatiblePythonVersionFound]
Poetry was unable to find a compatible version. If you have one, you can explicitly use it via the "env use" command. 

Dois-je créer un environnement explicitement pour le projet à l'aide de Pyenv ou le projet doit-il pouvoir accéder à la bonne version Python après l'exécution de pyenv local 3.8.1.? Quand je fais ce dernier, rien ne change et j'obtiens toujours les mêmes erreurs.

5
P4nd4b0b3r1n0

Même si ce problème a été résolu, j'écris ceci pour quelqu'un qui rencontre à nouveau ce problème. Après toutes les tentatives, mon python -V a toujours abouti à 2.7 et aucune discussion n'a mentionné l'exécution de pyenv Shell (ce qui me surprend!) Ajout de pyenv au chemin

$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

Dans mon cas, j'ai dû l'ajouter à .bashrc et non à bash_profile. https://ggkbase-help.berkeley.edu/how-to/install-pyenv/

Travaillé!

0
Arpana Mehta