已解析的依赖项中存在不兼容的版本
There are incompatible versions in the resolved dependencies
我正在尝试 运行 我的 python 项目似乎在我的 Mac 上运行良好(在 pycharm 中最好,但可以 运行 在 VSCode) 和我的 raspberry pi 在 VSCode 上很糟糕。每当我 运行 一个 pipenv shell
然后一个 pipenv install
它只是抱怨这个错误:
Pipfile.lock (e9a11d) out of date, updating to (47943b)...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✘ Locking Failed!
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 741, in _main
[ResolutionFailure]: resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages, dev)
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 709, in resolve_packages
[ResolutionFailure]: requirements_dir=requirements_dir,
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 692, in resolve
[ResolutionFailure]: req_dir=requirements_dir
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/utils.py", line 1403, in resolve_deps
[ResolutionFailure]: req_dir=req_dir,
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/utils.py", line 1108, in actually_resolve_deps
[ResolutionFailure]: resolver.resolve()
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/utils.py", line 833, in resolve
[ResolutionFailure]: raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
First try clearing your dependency cache with $ pipenv lock --clear, then try the original command again.
Alternatively, you can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: Could not find a version that matches graphene-django>=3.0.0b1 (from -r /tmp/pipenvcczdc6ayrequirements/pipenv-eg1jqra7-constraints.txt (line 3))
Tried: 1.0, 1.1.0, 1.2.0, 1.2.1, 1.3, 2.0.0, 2.0.0, 2.1.0, 2.1.0, 2.2.0, 2.2.0, 2.3.0, 2.3.0, 2.3.2, 2.3.2, 2.4.0, 2.4.0, 2.5.0, 2.5.0, 2.6.0, 2.6.0, 2.7.0, 2.7.0, 2.7.1, 2.7.1, 2.8.0, 2.8.0, 2.8.1, 2.8.1, 2.8.2, 2.8.2, 2.9.0, 2.9.0, 2.9.1, 2.9.1, 2.10.0, 2.10.0, 2.10.1, 2.10.1, 2.11.0, 2.11.0, 2.11.1, 2.11.1, 2.12.0, 2.12.0, 2.12.1, 2.12.1, 2.13.0, 2.13.0, 2.14.0, 2.14.0, 2.15.0, 2.15.0
Skipped pre-versions: 1.0.dev20160909000001, 1.0.dev20160910000001, 1.0.dev20160917000001, 1.0.dev20160919000001, 1.0.dev20160919000002, 1.0.dev20160919000003, 1.0.dev20160919000004, 1.0.dev20160920000001, 1.0.dev20160922000001, 2.0.dev2017072501, 2.0.dev2017072601, 2.0.dev2017073101, 2.0.dev2017073101, 2.0.dev2017083101, 2.0.dev2017083101, 2.1rc0, 2.1rc0, 2.1rc1, 2.1rc1, 3.0.0b1, 3.0.0b1, 3.0.0b2, 3.0.0b2, 3.0.0b3, 3.0.0b3, 3.0.0b4, 3.0.0b4, 3.0.0b5, 3.0.0b5, 3.0.0b6, 3.0.0b6, 3.0.0b7, 3.0.0b7
There are incompatible versions in the resolved dependencies:
graphene-django (from -r /tmp/pipenvcczdc6ayrequirements/pipenv-eg1jqra7-constraints.txt (line 3))
graphene-django>=3.0.0b1 (from django-graphql-jwt==0.3.2->-r /tmp/pipenvcczdc6ayrequirements/pipenv-eg1jqra7-constraints.txt (line 5))
在 运行 宁 pipenv graph
之后(在 pipenv install --skip-lock
之后)我看不出有什么不兼容的,因为它 returns 这个:
django-cors-headers==3.7.0
- Django [required: >=2.2, installed: 3.2.3]
- asgiref [required: >=3.3.2,<4, installed: 3.3.4]
- typing-extensions [required: Any, installed: 3.10.0.0]
- pytz [required: Any, installed: 2021.1]
- sqlparse [required: >=0.2.2, installed: 0.4.1]
django-graphql-jwt==0.3.2
- Django [required: >=1.11, installed: 3.2.3]
- asgiref [required: >=3.3.2,<4, installed: 3.3.4]
- typing-extensions [required: Any, installed: 3.10.0.0]
- pytz [required: Any, installed: 2021.1]
- sqlparse [required: >=0.2.2, installed: 0.4.1]
- graphene-django [required: >=3.0.0b1, installed: 3.0.0b7]
- Django [required: >=2.2, installed: 3.2.3]
- asgiref [required: >=3.3.2,<4, installed: 3.3.4]
- typing-extensions [required: Any, installed: 3.10.0.0]
- pytz [required: Any, installed: 2021.1]
- sqlparse [required: >=0.2.2, installed: 0.4.1]
- graphene [required: >=3.0.0b5,<4, installed: 3.0b7]
- aniso8601 [required: >=8,<9, installed: 8.1.1]
- graphql-core [required: >=3.1.2,<4, installed: 3.1.5]
- graphql-relay [required: >=3.0,<4, installed: 3.1.0]
- graphql-core [required: >=3.1, installed: 3.1.5]
- typing-extensions [required: >=3.7,<4, installed: 3.10.0.0]
- graphql-core [required: >=3.1.0,<4, installed: 3.1.5]
- promise [required: >=2.1, installed: 2.3]
- six [required: Any, installed: 1.16.0]
- text-unidecode [required: Any, installed: 1.3]
- PyJWT [required: >=2,<3, installed: 2.1.0]
Rx==1.6.1
singledispatch==3.6.1
- six [required: Any, installed: 1.16.0]
似乎每个版本都在版本范围内正确安装,包括它抱怨的 graphene-django [要求:>=3.0.0b1,已安装:3.0.0b7]。
为什么会出现这个错误?
pip3 list
returns:
Package Version
------------------- --------
aniso8601 8.1.1
asgiref 3.3.4
Django 3.2.3
django-cors-headers 3.7.0
django-graphql-jwt 0.3.2
graphene 3.0b7
graphene-django 3.0.0b7
graphql-core 3.1.5
graphql-relay 3.1.0
pip 21.1.1
promise 2.3
PyJWT 2.1.0
pytz 2021.1
Rx 1.6.1
setuptools 56.0.0
singledispatch 3.6.1
six 1.16.0
sqlparse 0.4.1
text-unidecode 1.3
typing-extensions 3.10.0.0
wheel 0.36.2
Pipfile:
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
django = "*"
django-graphql-jwt = "*"
pyjwt = "1.7.1"
django-cors-headers = "*"
graphene-django = "*"
[requires]
python_version = "3.7"
[dev-packages]
我已经尝试了很多方法来尝试解决这个问题,但我不知道从哪里开始。我想在我的 raspberry pi 上部署这个 python、graphql 和 React 项目,但我想如果我什至无法将它部署到 运行,我也做不到。我正在尝试在我的 raspberry pi (运行ning raspbian) 上 运行,这是问题所在的后端 python 应用程序。
任何帮助,任何事情都将不胜感激。我是 python.
的初学者
问题似乎是 graphene-django
根据它要求的库 django-graphql-jwt
的 PyPI https://pypi.org/project/graphene-django/. But for some reason in this commit 只有版本 2.15.0
一个版本 3.0.0b1
。我认为这是您的日志中显示的问题:
ERROR: Could not find a version that matches graphene-django>=3.0.0b1 (from -r /tmp/pipenvcczdc6ayrequirements/pipenv-eg1jqra7-constraints.txt (line 3))
显然在此 commit 中仍然支持最新的 graphene-django
版本。所以我的猜测是可能降级为:
django-graphql-jwt="0.3.1"
而不是 0.3.2
应该可以解决问题。在这种情况下,您可以向他们报告问题。
实际上 Pipenv 没有足够智能的依赖解析器。我 运行 进入了类似的问题并切换到 poetry。 Poetry 会将你的依赖解析到符合约束条件且互不冲突的最新版本。
诗歌也比 Pipenv 快得多,并提供更好的用户体验。
# pyproject.toml
[build-system]
requires = ["poetry>=1.12"]
build-backend = "poetry.masonry.api"
[tool.poetry]
name = "sample"
version = "0.1.0"
description = "Sample"
authors = []
[tool.poetry.dependencies]
python = "~3.7"
django = "*"
django-graphql-jwt = "*"
pyjwt = "1.7.1"
django-cors-headers = "*"
graphene-django = "*"
在shell中:
$ poetry --version
Poetry version 1.1.6
$ poetry lock
Updating dependencies
Resolving dependencies... (15.3s)
Writing lock file
$ poetry install
Installing dependencies from lock file
Package operations: 17 installs, 0 updates, 0 removals
• Installing six (1.16.0)
• Installing promise (2.3)
• Installing rx (1.6.1)
• Installing graphql-core (2.3.2)
• Installing typing-extensions (3.10.0.0)
• Installing aniso8601 (7.0.0)
• Installing asgiref (3.3.4)
• Installing graphql-relay (2.0.1)
• Installing pytz (2021.1)
• Installing django (3.2.3)
• Installing graphene (2.1.8)
• Installing singledispatch (3.6.2)
• Installing text-unidecode (1.3)
• Installing graphene-django (2.15.0)
• Installing pyjwt (1.7.1)
• Installing django-cors-headers (3.7.0)
• Installing django-graphql-jwt (0.3.1)
您以某种方式设法安装了 beta 版本(之前使用了 --pre
标志,然后从 Pipfile 中删除了该选项,例如,或者直接在虚拟环境中使用了 pip)。
现在,因为 django-graphql-jwt
不符合语义版本控制,他们决定依赖主要版本,在补丁发布中预发布 ¯\_(ツ)_/¯
.
由于 django-graphql-jtw
的 0.3.1 版本依赖于 >=2.5.1
,您的 beta 版本仍将匹配,但没有 --pre
标志锁定将失败,因为最高非-测试版是 2.5.1。这就是显示的冲突(但输出不是很清楚)。
应该解决问题的解决方案是:
pipenv uninstall django-graphql-jwt django-graphene graphene graphql
# followed by:
pipenv install 'django-graphql-jwt<0.3.2'
我正在尝试 运行 我的 python 项目似乎在我的 Mac 上运行良好(在 pycharm 中最好,但可以 运行 在 VSCode) 和我的 raspberry pi 在 VSCode 上很糟糕。每当我 运行 一个 pipenv shell
然后一个 pipenv install
它只是抱怨这个错误:
Pipfile.lock (e9a11d) out of date, updating to (47943b)...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✘ Locking Failed!
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 741, in _main
[ResolutionFailure]: resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages, dev)
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 709, in resolve_packages
[ResolutionFailure]: requirements_dir=requirements_dir,
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 692, in resolve
[ResolutionFailure]: req_dir=requirements_dir
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/utils.py", line 1403, in resolve_deps
[ResolutionFailure]: req_dir=req_dir,
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/utils.py", line 1108, in actually_resolve_deps
[ResolutionFailure]: resolver.resolve()
[ResolutionFailure]: File "/home/nick/.local/lib/python3.7/site-packages/pipenv/utils.py", line 833, in resolve
[ResolutionFailure]: raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
First try clearing your dependency cache with $ pipenv lock --clear, then try the original command again.
Alternatively, you can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: Could not find a version that matches graphene-django>=3.0.0b1 (from -r /tmp/pipenvcczdc6ayrequirements/pipenv-eg1jqra7-constraints.txt (line 3))
Tried: 1.0, 1.1.0, 1.2.0, 1.2.1, 1.3, 2.0.0, 2.0.0, 2.1.0, 2.1.0, 2.2.0, 2.2.0, 2.3.0, 2.3.0, 2.3.2, 2.3.2, 2.4.0, 2.4.0, 2.5.0, 2.5.0, 2.6.0, 2.6.0, 2.7.0, 2.7.0, 2.7.1, 2.7.1, 2.8.0, 2.8.0, 2.8.1, 2.8.1, 2.8.2, 2.8.2, 2.9.0, 2.9.0, 2.9.1, 2.9.1, 2.10.0, 2.10.0, 2.10.1, 2.10.1, 2.11.0, 2.11.0, 2.11.1, 2.11.1, 2.12.0, 2.12.0, 2.12.1, 2.12.1, 2.13.0, 2.13.0, 2.14.0, 2.14.0, 2.15.0, 2.15.0
Skipped pre-versions: 1.0.dev20160909000001, 1.0.dev20160910000001, 1.0.dev20160917000001, 1.0.dev20160919000001, 1.0.dev20160919000002, 1.0.dev20160919000003, 1.0.dev20160919000004, 1.0.dev20160920000001, 1.0.dev20160922000001, 2.0.dev2017072501, 2.0.dev2017072601, 2.0.dev2017073101, 2.0.dev2017073101, 2.0.dev2017083101, 2.0.dev2017083101, 2.1rc0, 2.1rc0, 2.1rc1, 2.1rc1, 3.0.0b1, 3.0.0b1, 3.0.0b2, 3.0.0b2, 3.0.0b3, 3.0.0b3, 3.0.0b4, 3.0.0b4, 3.0.0b5, 3.0.0b5, 3.0.0b6, 3.0.0b6, 3.0.0b7, 3.0.0b7
There are incompatible versions in the resolved dependencies:
graphene-django (from -r /tmp/pipenvcczdc6ayrequirements/pipenv-eg1jqra7-constraints.txt (line 3))
graphene-django>=3.0.0b1 (from django-graphql-jwt==0.3.2->-r /tmp/pipenvcczdc6ayrequirements/pipenv-eg1jqra7-constraints.txt (line 5))
在 运行 宁 pipenv graph
之后(在 pipenv install --skip-lock
之后)我看不出有什么不兼容的,因为它 returns 这个:
django-cors-headers==3.7.0
- Django [required: >=2.2, installed: 3.2.3]
- asgiref [required: >=3.3.2,<4, installed: 3.3.4]
- typing-extensions [required: Any, installed: 3.10.0.0]
- pytz [required: Any, installed: 2021.1]
- sqlparse [required: >=0.2.2, installed: 0.4.1]
django-graphql-jwt==0.3.2
- Django [required: >=1.11, installed: 3.2.3]
- asgiref [required: >=3.3.2,<4, installed: 3.3.4]
- typing-extensions [required: Any, installed: 3.10.0.0]
- pytz [required: Any, installed: 2021.1]
- sqlparse [required: >=0.2.2, installed: 0.4.1]
- graphene-django [required: >=3.0.0b1, installed: 3.0.0b7]
- Django [required: >=2.2, installed: 3.2.3]
- asgiref [required: >=3.3.2,<4, installed: 3.3.4]
- typing-extensions [required: Any, installed: 3.10.0.0]
- pytz [required: Any, installed: 2021.1]
- sqlparse [required: >=0.2.2, installed: 0.4.1]
- graphene [required: >=3.0.0b5,<4, installed: 3.0b7]
- aniso8601 [required: >=8,<9, installed: 8.1.1]
- graphql-core [required: >=3.1.2,<4, installed: 3.1.5]
- graphql-relay [required: >=3.0,<4, installed: 3.1.0]
- graphql-core [required: >=3.1, installed: 3.1.5]
- typing-extensions [required: >=3.7,<4, installed: 3.10.0.0]
- graphql-core [required: >=3.1.0,<4, installed: 3.1.5]
- promise [required: >=2.1, installed: 2.3]
- six [required: Any, installed: 1.16.0]
- text-unidecode [required: Any, installed: 1.3]
- PyJWT [required: >=2,<3, installed: 2.1.0]
Rx==1.6.1
singledispatch==3.6.1
- six [required: Any, installed: 1.16.0]
似乎每个版本都在版本范围内正确安装,包括它抱怨的 graphene-django [要求:>=3.0.0b1,已安装:3.0.0b7]。
为什么会出现这个错误?
pip3 list
returns:
Package Version
------------------- --------
aniso8601 8.1.1
asgiref 3.3.4
Django 3.2.3
django-cors-headers 3.7.0
django-graphql-jwt 0.3.2
graphene 3.0b7
graphene-django 3.0.0b7
graphql-core 3.1.5
graphql-relay 3.1.0
pip 21.1.1
promise 2.3
PyJWT 2.1.0
pytz 2021.1
Rx 1.6.1
setuptools 56.0.0
singledispatch 3.6.1
six 1.16.0
sqlparse 0.4.1
text-unidecode 1.3
typing-extensions 3.10.0.0
wheel 0.36.2
Pipfile:
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
django = "*"
django-graphql-jwt = "*"
pyjwt = "1.7.1"
django-cors-headers = "*"
graphene-django = "*"
[requires]
python_version = "3.7"
[dev-packages]
我已经尝试了很多方法来尝试解决这个问题,但我不知道从哪里开始。我想在我的 raspberry pi 上部署这个 python、graphql 和 React 项目,但我想如果我什至无法将它部署到 运行,我也做不到。我正在尝试在我的 raspberry pi (运行ning raspbian) 上 运行,这是问题所在的后端 python 应用程序。
任何帮助,任何事情都将不胜感激。我是 python.
的初学者问题似乎是 graphene-django
根据它要求的库 django-graphql-jwt
的 PyPI https://pypi.org/project/graphene-django/. But for some reason in this commit 只有版本 2.15.0
一个版本 3.0.0b1
。我认为这是您的日志中显示的问题:
ERROR: Could not find a version that matches graphene-django>=3.0.0b1 (from -r /tmp/pipenvcczdc6ayrequirements/pipenv-eg1jqra7-constraints.txt (line 3))
显然在此 commit 中仍然支持最新的 graphene-django
版本。所以我的猜测是可能降级为:
django-graphql-jwt="0.3.1"
而不是 0.3.2
应该可以解决问题。在这种情况下,您可以向他们报告问题。
实际上 Pipenv 没有足够智能的依赖解析器。我 运行 进入了类似的问题并切换到 poetry。 Poetry 会将你的依赖解析到符合约束条件且互不冲突的最新版本。 诗歌也比 Pipenv 快得多,并提供更好的用户体验。
# pyproject.toml
[build-system]
requires = ["poetry>=1.12"]
build-backend = "poetry.masonry.api"
[tool.poetry]
name = "sample"
version = "0.1.0"
description = "Sample"
authors = []
[tool.poetry.dependencies]
python = "~3.7"
django = "*"
django-graphql-jwt = "*"
pyjwt = "1.7.1"
django-cors-headers = "*"
graphene-django = "*"
在shell中:
$ poetry --version
Poetry version 1.1.6
$ poetry lock
Updating dependencies
Resolving dependencies... (15.3s)
Writing lock file
$ poetry install
Installing dependencies from lock file
Package operations: 17 installs, 0 updates, 0 removals
• Installing six (1.16.0)
• Installing promise (2.3)
• Installing rx (1.6.1)
• Installing graphql-core (2.3.2)
• Installing typing-extensions (3.10.0.0)
• Installing aniso8601 (7.0.0)
• Installing asgiref (3.3.4)
• Installing graphql-relay (2.0.1)
• Installing pytz (2021.1)
• Installing django (3.2.3)
• Installing graphene (2.1.8)
• Installing singledispatch (3.6.2)
• Installing text-unidecode (1.3)
• Installing graphene-django (2.15.0)
• Installing pyjwt (1.7.1)
• Installing django-cors-headers (3.7.0)
• Installing django-graphql-jwt (0.3.1)
您以某种方式设法安装了 beta 版本(之前使用了 --pre
标志,然后从 Pipfile 中删除了该选项,例如,或者直接在虚拟环境中使用了 pip)。
现在,因为 django-graphql-jwt
不符合语义版本控制,他们决定依赖主要版本,在补丁发布中预发布 ¯\_(ツ)_/¯
.
由于 django-graphql-jtw
的 0.3.1 版本依赖于 >=2.5.1
,您的 beta 版本仍将匹配,但没有 --pre
标志锁定将失败,因为最高非-测试版是 2.5.1。这就是显示的冲突(但输出不是很清楚)。
应该解决问题的解决方案是:
pipenv uninstall django-graphql-jwt django-graphene graphene graphql
# followed by:
pipenv install 'django-graphql-jwt<0.3.2'