最近我开始使用Poetry。我非常喜欢这种简单直接的包管理方式,但是我好像解决不了一个问题:它应该使用哪个 Python 版本。我在机器上安装了 Python 3.9 和 3.7。3.7 在系统环境变量中优先级更高 - 这可能是问题的原因。
但现在让我们回到示例中。我的 pyproject.toml
文件的一部分看起来像这样:
[tool.poetry.dependencies]
python = "3.9.2"
pandas = "^1.2.3"
requests = "^2.25.1"
我手动更改了Python版本为3.9.2,使用 poetry add
添加了 Pandas 和 requests库,然后运行了 poetry install
。由于我把 virtualenvs.in-project
设置为true,因此我的虚拟环境在项目目录下创建时没有出现任何错误。但是,当它被激活时,我可以看到它正在使用Python 3.7.9版本(在Windows上,从PowerShell窗口开始):
cd C:\pyprojects
c:/pyprojects/***/.venv/Scripts/Activate.ps1
(.venv) c:/pyprojects/***/.venv/Scripts/python.exe
Python 3.7.9 (tags/v3.7.9:13c94747c7, Aug 17 2020, 18:58:18) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
我如何明确告诉Poetry使用精确的Python版本,如果pyproject.toml python = "3.9.2"
不够?它是否选择第一个Python环境变量,在我的情况下是python37?或者我漏掉了什么?
cd my-project
,pyenv local 3.9.2
(或任何您想要的版本),然后执行poetry install
以使用正确的Python版本创建虚拟环境。 - Taylor D. Edmiston