1
votes

I'm a Python newbie and having a bit of trouble understanding dependencies, hoping someone can help.

I'm using pipenv to set up a dev environment. Here is my pipenv file

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

[packages]

[dev-packages]
pytest = "*"
apache-airflow = "*"

[requires]
python_version = "2.7"

When I issue pipenv install --dev this happens:

$ pipenv install --dev
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project.
Pipfile.lock not found, creating… Locking [dev-packages] dependencies…

Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Could not find a version that matches Flask-Login<0.5,==0.2.11,>=0.3
Tried: 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

I did what it suggested: pipenv install --dev --skip-lock which completed successfully:

$ pipenv install --dev --skip-lock
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project.
Installing dependencies from Pipfile… ????
▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 2/2 — 00:00:02

then pipenv graph | grep Flask-Login

$ pipenv graph | grep Flask-Login
- Flask-Login [required: <0.5,>=0.3, installed: 0.2.11]

At this point I'm a bit confused. I don't know why it might have installed Flask-Login 0.2.11 given there's (seemingly) nothing else in the dependency graph that requires Flask-Login.

I'm confused. Help!

1
Just to confirm, your question is specifically about why you have version "0.2.11" installed when apache-airflow requires ">=0.3"?alxwrd
thx for asking me to clarify. yes, my understanding is that Flask-Login would only be installed because its a dependency and the the version requested is <0.5,>=0.3, so why would 0.2.11 be installed?jamiet

1 Answers

1
votes

Looks like I've hit a known issue in pipenv: https://github.com/pypa/pipenv/issues/2596 and I'm not the only person to hit it when installing airflow: https://github.com/pypa/pipenv/issues/2596#issuecomment-427389166

Will wait to see if that issue gets resolved.