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

dy2hfwbg  于 2022-11-26  发布在  Python
关注(0)|答案(9)|浏览(522)

我对Python略知一二,一年多前我写了一个小脚本,使用pipenv来管理依赖关系。
旧的平台是Windows 7,当前的平台是Windows 10。
那时我可能已经安装了Python 3.7,现在我已经安装了Python 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

这是管道文件

[[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应该工作。

kjthegm6

kjthegm61#

[requires]
python_version = "3.7"

和错误:
Warning: Python 3.7 was not found on your system…
有点提示pipenv已经安装,但是当它读取你的配置文件时,它看到它应该用python 3.7创建环境,所以,逻辑上,你应该安装3.7 * 或者 * 更新pipfile以使用你已经安装的python?

hsvhsicv

hsvhsicv2#

如果你的python命令是Python 2.x,但是你有一个运行Python 3.x的python3命令,那么你可能只需要使用--python选项来告诉pipenv使用它:

$ pipenv install
Warning: Python >= 3.5 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

$ pipenv --python `which python3` install
Creating a virtualenv for this project...
vuv7lop3

vuv7lop33#

我建议您安装pyenv(这样它就可以管理您的Python版本)。
pyenv的存储库是这样的:https://github.com/pyenv/pyenv
安装了pyenv后,当Pipfile需要一个Python版本而你的机器上没有时,它会询问你是否要用pyenv来安装它。这样你就可以在不同python版本的项目中工作,而不必担心项目使用的是哪个版本。使用pyenv,你也可以在全局shell中轻松地在python版本之间切换。
另一个与你的问题不相关的建议是,你应该看看诗歌来代替pipenv(它更快,因为它以异步方式安装依赖项),诗歌的网站是这样的:https://python-poetry.org/
但是,您仍然需要像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,但应该是这两个中的一个。

snz8szmq

snz8szmq5#

我安装了Python 3.9
并且pipenv需要Python 3.6,如pipfile中所述。
因此,我更改了pipfile中的值

[requires]
python_version = "3.6"

[requires]
python_version = "*"

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

kmbjn2e3

kmbjn2e36#

简单的解决方案是,你可以避免这样的问题,并使它成为一个完全系统可靠的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 = "*"
bbmckpt7

bbmckpt77#

安装相关版本
如何检查Python版本
命令任意目录〉Python -v
在我的情况下,他们需要Python 3.8.2,但我有Python 3.8.0版本安装,由于这一点,我无法克服这个错误
一旦我安装确切的版本,我可以运行命令

iswrvxsc

iswrvxsc8#

我遇到过类似的问题,通过删除pipfile解决了。pipfile路径是您在终端中输入pipenv安装命令的路径。

zyfwsgd6

zyfwsgd69#

当我将旧项目移到新笔记本电脑上时,也遇到了同样的问题。

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***,在终端中输入pipenv shell。然后它会建立一个新的***Pipfile***,并与你的***python***匹配。

相关问题