【发布时间】:2018-10-05 14:28:39
【问题描述】:
我是 Python 新手,在理解依赖关系方面有点困难,希望有人能提供帮助。
我正在使用 pipenv 来设置开发环境。这是我的 pipenv 文件
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages]
[dev-packages]
pytest = "*"
apache-airflow = "*"
[requires]
python_version = "2.7"
当我发出pipenv install --dev 时,会发生这种情况:
$ pipenv install --dev
礼貌通知:Pipenv 发现自己正在运行 在虚拟环境中,所以它会自动使用 环境,而不是为任何项目创建自己的环境。
未找到 Pipfile.lock,正在创建……锁定 [dev-packages] 依赖项……警告:无法解决您的依赖关系。你可能有一个 您的子依赖项不匹配。
您可以使用 $ pipenv install --skip-lock 绕过此机制,然后运行 $ pipenv graph 检查情况。
找不到匹配的版本 烧瓶登录=0.3
尝试过:0.1.1、0.1.2、0.1.3、0.2.0、 0.2.1、0.2.2、0.2.3、0.2.4、0.2.5、0.2.6、0.2.7、0.2.8、0.2.9、0.2.10、0.2.11、0.3.0、0.3。 1、0.3.2、0.4.0、0.4.0、0.4.1
我按照它的建议做了:pipenv install --dev --skip-lock 成功完成:
$ pipenv install --dev --skip-lock
礼貌通知:Pipenv 发现 本身在虚拟环境中运行,所以它会自动 使用该环境,而不是为任何项目创建自己的环境。
从 Pipfile 安装依赖项... ??????
▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 2/2 — 00:00:02
然后pipenv graph | grep Flask-Login
$ pipenv 图 | grep Flask-登录
- Flask-Login [必需:=0.3,安装:0.2.11]
此时我有点困惑。我不知道为什么它可能安装了 Flask-Login 0.2.11,因为依赖关系图中(似乎)没有其他东西需要 Flask-Login。
我很困惑。救命!
【问题讨论】:
-
只是为了确认一下,您的问题是关于为什么在 apache-airflow 需要 ">=0.3" 时安装了“0.2.11”版本?
-
感谢我的澄清。是的,我的理解是 Flask-Login 只会被安装,因为它是一个依赖项,并且请求的版本是 =0.3,那么为什么要安装 0.2.11?