pipenv需要python 3.7,但已安装的版本是3.8,无法安装

时间:2020-08-04 13:20:32

标签: python python-3.x pipenv

我知道一些Python,一年多以前,我写了一个小脚本,使用pipenv来管理依赖项。

旧平台是Windows 7,当前平台是Windows 10。

那时我可能已经安装了Pyhton 3.7,而不是3.8.3,但是正在运行:

pipenv install

抱怨:

Warning: Python 3.7 was not found on your system…
Neither 'pyenv' nor 'asdf' could be found to install Python.
You can specify specific versions of Python with:
$ pipenv --python path\to\python

这是Pipfile

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
python-ldap = {path = "./dependencies/python_ldap-3.1.0-cp37-cp37m-win_amd64.whl"}
requests = "~=2.0"
mysqlclient = "~=1.0"

[dev-packages]

[requires]
python_version = "3.7"

我手动编辑了最后一行以允许3.8,但如何正确解决呢?
我认为3.7应该是最低要求-脚本非常简单,我认为甚至3.0也可以。

5 个答案:

答案 0 :(得分:2)

您可以从官方网站-https://www.python.org/downloads/

下载Python 3.7。

答案 1 :(得分:2)

[requires]
python_version = "3.7"

和错误:

Warning: Python 3.7 was not found on your system…

关于已安装pipenv的提示的排序,但是当它读取您的配置文件时,发现它应该使用python 3.7创建环境,因此,从逻辑上讲,您应该安装3.7 更新pipfile以使用您已安装的python吗?

答案 2 :(得分:2)

我建议您安装 pyenv(以便它可以管理您的 Python 版本)。

pyenv 的仓库是这个: https://github.com/pyenv/pyenv

如果安装了 pyenv,当 Pipfile 需要一个您的机器上没有的 Python 版本时,它会询问您是否要使用 pyenv 安装它。 通过这种方式,您将能够在具有不同 Python 版本的项目中工作,而不必担心项目使用的是哪个版本。 使用 pyenv,您还可以在全局 shell 中轻松地在 python 版本之间进行更改。

另一个对你的问题没有真正理解的建议是,你应该看看诗歌来代替 pipenv(它更快,因为它以异步方式安装依赖项),诗歌的网站是这个:{{3} }

但是,您仍然需要像 pyenv 这样的东西或手动安装另一个 python 版本来解决您的问题。

如果你只是想让 Pipfile 允许你使用更新版本的 python,我想你可以像这样改变它:

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
python-ldap = {path = "./dependencies/python_ldap-3.1.0-cp37-cp37m-win_amd64.whl"}
requests = "~=2.0"
mysqlclient = "~=1.0"

[dev-packages]

[requires]
python_version = "^3.7"

我不确定语法是 ^3.7 还是 >=3.7,但应该是这两者之一。

答案 3 :(得分:1)

简单的解决方案是,您可以避免这样的问题并使其成为完全系统可靠的python版本。要实现这一点,只需从 requires 中删除 python_version = "3.7" 行。

[[source]]
url = "https://pypi.org/simple"
verify_ssl = false
name = "pypi"

[packages]

[dev-packages]

[requires]
python_version = "3.7"

所以在删除 python 版本后,你的 pipfile 会像,

[[source]]
url = "https://pypi.org/simple"
verify_ssl = false
name = "pypi"

[packages]

[dev-packages]

[requires]
python_version = "*"

答案 4 :(得分:0)

我安装了 Python 3.9

pipenv需要Python 3.6,如pipfile中所述。

因此,我更改了 pipfile

中的值
[requires]
python_version = "3.6"

[requires]
python_version = "*"

所以它可以在任何版本上工作。