pipenv - 由于 'Could not find a version that matches keras-nightly~=2.5.0.dev' 错误,未生成 Pipfile.lock

pipenv - Pipfile.lock is not being generated due to the 'Could not find a version that matches keras-nightly~=2.5.0.dev' error

由于标题清楚地描述了我遇到的问题,因此在执行推荐命令 pipenv lock --clear:

时出现以下错误,因此没有生成 Pipfile.lock
ERROR: ERROR: Could not find a version that matches keras-nightly~=2.5.0.dev
Skipped pre-versions: 2.5.0.dev2021020510, 2.5.0.dev2021020600, 2.5.0.dev2021020700, 2.5.0.dev2021020800, 2.5.0.dev2021020900, 2.5.0.dev2021021000, 2.5.0.dev2021021100, 2.5.0.dev2021021200, 2.5.0.dev2021021300, 2.5.0.dev2021021400, 2.5.0.dev2021021500, 2.5.0.dev2021021600, 2.5.0.dev2021021700, 2.5.0.dev2021021800, 2.5.0.dev2021021900, 2.5.0.dev2021022000, 2.5.0.dev2021022100, 2.5.0.dev2021022200, 2.5.0.dev2021022300, 2.5.0.dev2021022317, 2.5.0.dev2021022400, 2.5.0.dev2021022411, 2.5.0.dev2021022500, 2.5.0.dev2021022600, 2.5.0.dev2021022700, 2.5.0.dev2021022800, 2.5.0.dev2021030100, 2.5.0.dev2021030200, 2.5.0.dev2021030300, 2.5.0.dev2021030400, 2.5.0.dev2021030500, 2.5.0.dev2021030600, 2.5.0.dev2021030700, 2.5.0.dev2021030800, 2.5.0.dev2021030900, 2.5.0.dev2021031000, 2.5.0.dev2021031100, 2.5.0.dev2021031200, 2.5.0.dev2021031300, 2.5.0.dev2021031400, 2.5.0.dev2021031500, 2.5.0.dev2021031600, 2.5.0.dev2021031700, 2.5.0.dev2021031800, 2.5.0.dev2021032213, 2.5.0.dev2021032300, 2.5.0.dev2021032413, 2.5.0.dev2021032500, 2.5.0.dev2021032600, 2.5.0.dev2021032610, 2.5.0.dev2021032700, 2.5.0.dev2021032800, 2.5.0.dev2021032900, 2.6.0.dev2021033000, 2.6.0.dev2021033100, 2.6.0.dev2021040100, 2.6.0.dev2021040200, 2.6.0.dev2021040300, 2.6.0.dev2021040400, 2.6.0.dev2021040500, 2.6.0.dev2021040600, 2.6.0.dev2021040714, 2.6.0.dev2021040800, 2.6.0.dev2021040900, 2.6.0.dev2021041000, 2.6.0.dev2021041100, 2.6.0.dev2021041200, 2.6.0.dev2021041300, 2.6.0.dev2021041400, 2.6.0.dev2021041500, 2.6.0.dev2021041600, 2.6.0.dev2021041700, 2.6.0.dev2021041800, 2.6.0.dev2021041900, 2.6.0.dev2021042000, 2.6.0.dev2021042100, 2.6.0.dev2021042200, 2.6.0.dev2021042300, 2.6.0.dev2021042500, 2.6.0.dev2021042600, 2.6.0.dev2021042700, 2.6.0.dev2021042800, 2.6.0.dev2021042900, 2.6.0.dev2021043000, 2.6.0.dev2021050100, 2.6.0.dev2021050200, 2.6.0.dev2021050300, 2.6.0.dev2021050400, 2.6.0.dev2021050500, 2.6.0.dev2021050600, 2.6.0.dev2021051200, 2.6.0.dev2021051300, 2.6.0.dev2021051400, 2.6.0.dev2021051500, 2.6.0.dev2021051600, 2.6.0.dev2021051700, 2.6.0.dev2021051800, 2.6.0.dev2021051900, 2.6.0.dev2021052000, 2.6.0.dev2021052100, 2.6.0.dev2021052200, 2.6.0.dev2021052300, 2.6.0.dev2021052400, 2.6.0.dev2021052500, 2.6.0.dev2021052600, 2.6.0.dev2021052700
There are incompatible versions in the resolved dependencies.

那么,我该如何克服这种情况呢?我基本上是在使用 Keras 开发深度神经网络。我只是安装了以下依赖项而没有明确声明版本:

tensorflow = "*"
nltk = "*"
pandas = "*"
tweepy = "*"
textblob = "*"
seaborn = "*"
matplotlib = "*"
wordcloud = "*"
stop-words = "*"
vadersentiment = "*"
scikit-learn = "*"
keras = "*"

通过查看 keras-nightly librarypypi 站点,我发现没有名为 2.5.0.dev 的版本。检查哪个包产生错误并尝试降级该包。

我遇到了同样的问题。显然,tensorflow 在解析 keras 时出现了 Pipfile 的子依赖解析错误。它搜索匹配 keras-nightly~=2.5.0.dev 的版本。查看pypi,这个版本不存在

无论如何,安装版本 2.4.X 都可以,例如。 G。 pipenv install tensorflow~=2.4.1.

通过更改 pipenv 文件中的 python_version 解决了我的问题。

我以前3.9有过。

Pipfile:

python_version = "3.8"

Pipenv 希望您在这种情况下使用 --pre 标志。我认为最简单的安装方法是这样的:

pipenv install tensorflow --python=3.8 --pre

tensorflow 似乎无法在 python 3.9 上运行,因为它依赖于 nightly。

如果您使用的是 python 3.9,您的选择是转到 tensorflow 2.6.0rc1,

将这些行添加到 Pipfile 解决了我的问题。

[pipenv]
allow_prereleases = true