我正在整理一个Python项目以供公共分发。
它使用虚拟环境,并有一个包含所有依赖项的requirements.txt文件。
我希望这个环境包含对我构建它的特定Python版本的依赖。我似乎记得这是一个很好的做法。
所以我尝试使用 pip 安装 python,这似乎是显而易见的事情,尽管 pip 本身是使用标准 python 下载(版本 3.12.0)安装的
所以我尝试了两个可能的命令:
pip install python
或
pip install python==3.12.0
但是,pip 第一个会给出以下错误消息:
ERROR: Could not find a version that satisfies the requirement python (from versions: none)
ERROR: No matching distribution found for python
第二个类似的消息。
我还发现,如果我尝试在虚拟环境之外使用 pip,也会发生同样的情况(尽管这不是我打算做的事情 - 我这样做是为了确定问题的确切根源)。因此,这似乎是 pip 的问题,而不是虚拟环境的问题。
我环顾四周,但没有看到其他遇到同样问题的人提出任何疑问。
这表明这是一件愚蠢的事情,所以也许没有其他人尝试过。或者,这有点像“为什么外星人没有联系我们”的问题,因为每次他们这样做时,效果都很好,所以没有什么值得评论的(比如,也许外星人一直在联系我们,但是我们只是没有注意到,我并不反对这个理论)。
我找到了一种在虚拟环境中安装特定版本的Python的“标准”方法这里
但奇怪的是pip不能用来安装python。
问题是错误还是设计特点?我将其标记为错误,因为如果我的设置有问题,我想知道。
requirements.txt
文件是包含所有所需的python包的文件,例如库,框架等。您不需要在那里指定python版本。
如果你想指定Python版本,你可以在
setup.py
或pyproject.toml
中进行:https://packaging.python.org/en/latest/tutorials/packaging-projects/#configuring-metadata
参见那里的
requires-python
部分。
另外,我发现这个线程很有帮助:Enforcing python version in setup.py
在那里查看最喜欢的答案