Lorsque l'on utilise poetry (un gestionnaire de package et de dépendances python) il va automatiquement prendre l'interpréteur de l'hôte en choisissant la bonne version https://python-poetry.org/docs/basic-usage#setting-a-python-version
Dans mon cas j'utilise
pyenv
pyenv install 3.8
Selon la documentation de
poetry
Copier le code
1 2 3 cd /path/my/projet pyenv local 3.8 pyenv exec poetry init -n # n option for non interactive
Sauf que poetry installe les dépendances avec la version de python par défaut sur votre hôte (3.10).
Copier le code
1 2 3 4 5 $ cat pyproject.toml ... [tool.poetry.dependencies] python = "^3.10" ...
Vous pouvez vérifier cette divergeance avec ces commandes
Copier le code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $ pyenv versions system * 3.8.19 (set by /home/david/projects/demo/.python-version) 3.11.9 $ pyenv exec poetry env info Virtualenv Python: 3.10.12 Implementation: CPython Path: NA Executable: NA Base Platform: linux OS: posix Python: 3.10.12 Path: /usr Executable: /usr/bin/python3.10
Selon la documentation de poetry il est demandé de mettre à jour une configuration :
Copier le code
1 2 3 4 $ poetry config virtualenvs.prefer-active-python true $ poetry config --list ... virtualenvs.prefer-active-python = true
Et vous pouvez maintenant vérifier que tout est bon en relançant la commande
poetry init -n
pyproject.toml
Copier le code
1 2 3 4 5 6 $ poetry init -n $ cat pyproject.toml ... [tool.poetry.dependencies] python = "^3.8" ...
On constate que l'on est bien sur la bonne version de l'interpréteur python car auparavant nous avions lancé la commande
pyenv local 3.8