question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

dependency resolution behaves differently with requirements.txt vs listing on the command-line

See original GitHub issue

Description

When doing pip install -r requirements.txt the resolver notices a version conflict and fails quickly, whereas listing the same requirements on the command line causes an extended un-resolved backtracking. pip install -r failed in 20s on my machine, while the pip install command is still running after an hour so far.

Expected behavior

pip install -r and pip install behave the same with respect to the resolver

pip version

21.2.4

Python version

3.9

OS

Mac OS 10.15.6

How to Reproduce

  1. pip install -r requirements.txt
  2. pip install ‘numpy>1.18’ -e .

requirements.txt contains:

-e .
numpy>1.19

setup.py contains

from setuptools import setup
setup(
          install_requires=[
              "configparser>=3.5",
              "kafka>=1.3.5; python_version<'3.7'",
              "kafka-python>=1.4.3; python_version>='3.7'",
              "confluent-kafka[avro]==1.3.0",
              "fastavro",  # Whatever's needed by confluent-kafka[avro]
              'avro-python3==1.9.2.1',  # confluent-kafka[avro] defines a dependency on 1.9.2, but only 1.9.2.1 works
              "isort>=4",

              "scipy>=1.2.1, <=1.4.1; python_version<'3.7'",
              "scipy",
              "numpy>=1.17; python_version<'3.9'",
              "numpy>1.17.2; python_version>='3.9'",
              "teamcity-messages>=1.17",
              "vertica_python>=0.9.1",  # Literally any version since we only need imports to succeed
              "mido>=1.2.8",
              "requests<=2.23.0",  # We've tested with up to 2.23.0, but snowflake-connector-python requires less than that :'(
              "python-Levenshtein>=0.12",
              "aubio==0.4.9",
              "future>=0.17",
              "six>=1.11",
              "datasketch>=1.5",
              "jams>=0.3",
              "python-slugify>=3",
          ],
)

Output

$ pip install -r requirements.txt
Looking in indexes: https://pypi.org/simple, http://sfw.sf.smle.co:8080/sfw/pip
Looking in links: file:///Users/stefansullivan/code/test_pip_resolution.
Obtaining file:///Users/stefansullivan/code/test_pip_resolution (from -r requirements.in (line 3))
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
Obtaining file:///<my project dir> (from -r requirements.in (line 4))
Requirement already satisfied: bokeh in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from -r requirements.in (line 5)) (2.4.0)
Requirement already satisfied: matplotlib in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from -r requirements.in (line 6)) (3.4.3)
Requirement already satisfied: pandas in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from -r requirements.in (line 7)) (1.3.3)
Requirement already satisfied: brigit in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from -r requirements.in (line 8)) (1.3.0)
Requirement already satisfied: tqdm in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from -r requirements.in (line 9)) (4.62.3)
Requirement already satisfied: numpy>1.18 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from -r requirements.in (line 10)) (1.21.2)
Collecting confluent-kafka[avro]==1.3.0
  Using cached confluent_kafka-1.3.0-cp39-cp39-macosx_10_15_x86_64.whl
Collecting mido<=1.2.9,>=1.2.8
  Downloading http://sfw.sf.smle.co:8080/sfw/pip/mido/mido-1.2.9-py2.py3-none-any.whl (52 kB)
Collecting isort==4.3.21
  Downloading http://sfw.sf.smle.co:8080/sfw/pip/isort/isort-4.3.21-py2.py3-none-any.whl (42 kB)
Collecting datasketch==1.5.1
  Downloading http://sfw.sf.smle.co:8080/sfw/pip/datasketch/datasketch-1.5.1-py2.py3-none-any.whl (73 kB)
Collecting kafka==1.3.5
  Using cached kafka-1.3.5-py2.py3-none-any.whl (207 kB)
Collecting requests<=2.23.0,==2.22.0
  Downloading http://sfw.sf.smle.co:8080/sfw/pip/requests/requests-2.22.0-py2.py3-none-any.whl (57 kB)
Collecting jams==0.3.4
  Downloading http://sfw.sf.smle.co:8080/sfw/pip/jams/jams-0.3.4-py3-none-any.whl (64 kB)
Collecting avro-python3==1.9.2.1
  Downloading http://sfw.sf.smle.co:8080/sfw/pip/avro-python3/avro_python3-1.9.2.1-py3-none-any.whl (43 kB)
Collecting configparser==3.5.0
  Using cached configparser-3.5.0-py3-none-any.whl
Collecting scipy<=1.4.1,>=1.2.1
  Using cached scipy-1.4.1.tar.gz (24.6 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
Collecting vertica-python<=0.10.2,>=0.9.1
  Using cached vertica_python-0.10.2-py2.py3-none-any.whl (152 kB)
Collecting python-Levenshtein==0.12.0
  Using cached python_Levenshtein-0.12.0-cp39-cp39-macosx_10_15_x86_64.whl
Collecting aubio==0.4.9
  Using cached aubio-0.4.9+smule.1-cp39-cp39-macosx_10_15_x86_64.whl

The conflict is caused by:
    The user requested numpy>1.18
    unknown 0.1 depends on numpy==1.17.1

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict





$ pip install 'numpy>1.18' -e .
Looking in indexes: https://pypi.org/simple, http://sfw.sf.smle.co:8080/sfw/pip
Looking in links: .
Obtaining file:///Users/stefansullivan/code/test_pip_resolution
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
Obtaining file:///<my project dir>
Requirement already satisfied: bokeh in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (2.4.0)
Requirement already satisfied: matplotlib in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (3.4.3)
Requirement already satisfied: pandas in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (1.3.3)
Requirement already satisfied: brigit in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (1.3.0)
Requirement already satisfied: tqdm in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (4.62.3)
Requirement already satisfied: numpy>1.18 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (1.21.2)
Requirement already satisfied: pillow>=7.1.0 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from bokeh) (8.3.2)
Requirement already satisfied: Jinja2>=2.9 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from bokeh) (3.0.1)
Requirement already satisfied: tornado>=5.1 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from bokeh) (6.1)
Requirement already satisfied: packaging>=16.8 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from bokeh) (21.0)
Requirement already satisfied: PyYAML>=3.10 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from bokeh) (5.4.1)
Requirement already satisfied: typing-extensions>=3.10.0 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from bokeh) (3.10.0.2)
Requirement already satisfied: kiwisolver>=1.0.1 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from matplotlib) (1.3.2)
Requirement already satisfied: python-dateutil>=2.7 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from matplotlib) (2.8.2)
Requirement already satisfied: pyparsing>=2.2.1 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from matplotlib) (2.4.7)
Requirement already satisfied: cycler>=0.10 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from matplotlib) (0.10.0)
Requirement already satisfied: pytz>=2017.3 in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from pandas) (2021.1)
Requirement already satisfied: log-colorizer in /Users/stefansullivan/venvs/mir39/lib/python3.9/site-packages (from brigit) (1.8.6)
Collecting configparser==3.5.0
  Using cached configparser-3.5.0-py3-none-any.whl
Collecting datasketch==1.5.1
  Downloading http://sfw.sf.smle.co:8080/sfw/pip/datasketch/datasketch-1.5.1-py2.py3-none-any.whl (73 kB)
Collecting teamcity-messages==1.17
  Using cached teamcity_messages-1.17-py3-none-any.whl
Collecting requests<=2.23.0,==2.22.0
  Downloading http://sfw.sf.smle.co:8080/sfw/pip/requests/requests-2.22.0-py2.py3-none-any.whl (57 kB)
Collecting isort==4.3.21
  Downloading http://sfw.sf.smle.co:8080/sfw/pip/isort/isort-4.3.21-py2.py3-none-any.whl (42 kB)
Collecting six<=1.14.0,>=1.11.0
  Using cached six-1.14.0-py2.py3-none-any.whl (10 kB)
INFO: pip is looking at multiple versions of numpy to determine which version is compatible with other requirements. This could take a while.
Collecting numpy>1.18
  Using cached numpy-1.21.2-cp39-cp39-macosx_10_9_x86_64.whl (17.0 MB)
INFO: pip is looking at multiple versions of <Python from Requires-Python> to determine which version is compatible with other requirements. This could take a while.
  Using cached numpy-1.21.1-cp39-cp39-macosx_10_9_x86_64.whl (17.0 MB)
  Using cached numpy-1.21.0-cp39-cp39-macosx_10_9_x86_64.whl (16.9 MB)
  Using cached numpy-1.20.3-cp39-cp39-macosx_10_9_x86_64.whl (16.1 MB)
  Using cached numpy-1.20.2-cp39-cp39-macosx_10_9_x86_64.whl (16.1 MB)
  Using cached numpy-1.20.1-cp39-cp39-macosx_10_9_x86_64.whl (16.1 MB)
  Using cached numpy-1.20.0-cp39-cp39-macosx_10_9_x86_64.whl (16.1 MB)
INFO: pip is looking at multiple versions of numpy to determine which version is compatible with other requirements. This could take a while.
  Using cached numpy-1.19.5-cp39-cp39-macosx_10_9_x86_64.whl (15.6 MB)
INFO: pip is looking at multiple versions of <Python from Requires-Python> to determine which version is compatible with other requirements. This could take a while.
  Using cached numpy-1.19.4-cp39-cp39-macosx_10_9_x86_64.whl (15.4 MB)
  Using cached numpy-1.19.3-cp39-cp39-macosx_10_9_x86_64.whl (15.9 MB)
  Using cached numpy-1.19.2.zip (7.3 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
  Using cached numpy-1.19.1.zip (7.3 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. If you want to abort this run, you can press Ctrl + C to do so. To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
  Using cached numpy-1.19.0.zip (7.3 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. If you want to abort this run, you can press Ctrl + C to do so. To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
  Using cached numpy-1.18.5.zip (5.4 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
  Using cached numpy-1.18.4.zip (5.4 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
  Using cached numpy-1.18.3.zip (5.4 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
  Using cached numpy-1.18.2.zip (5.4 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
  Using cached numpy-1.18.1.zip (5.4 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
INFO: pip is looking at multiple versions of tqdm to determine which version is compatible with other requirements. This could take a while.
Collecting tqdm
  Using cached tqdm-4.62.3-py2.py3-none-any.whl (76 kB)
  Using cached tqdm-4.62.2-py2.py3-none-any.whl (76 kB)
  Using cached tqdm-4.62.1-py2.py3-none-any.whl (76 kB)
  Using cached tqdm-4.62.0-py2.py3-none-any.whl (76 kB)
  Using cached tqdm-4.61.2-py2.py3-none-any.whl (76 kB)
  Using cached tqdm-4.61.1-py2.py3-none-any.whl (75 kB)
  Using cached tqdm-4.61.0-py2.py3-none-any.whl (75 kB)
INFO: pip is looking at multiple versions of tqdm to determine which version is compatible with other requirements. This could take a while.
  Using cached tqdm-4.60.0-py2.py3-none-any.whl (75 kB)
  Using cached tqdm-4.59.0-py2.py3-none-any.whl (74 kB)
  Using cached tqdm-4.58.0-py2.py3-none-any.whl (73 kB)
  Using cached tqdm-4.57.0-py2.py3-none-any.whl (72 kB)
  Using cached tqdm-4.56.2-py2.py3-none-any.whl (72 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. If you want to abort this run, you can press Ctrl + C to do so. To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
  Using cached tqdm-4.56.1-py2.py3-none-any.whl (72 kB)
  Using cached tqdm-4.56.0-py2.py3-none-any.whl (72 kB)
  Using cached tqdm-4.55.2-py2.py3-none-any.whl (68 kB)
  Using cached tqdm-4.55.1-py2.py3-none-any.whl (68 kB)
  Using cached tqdm-4.55.0-py2.py3-none-any.whl (68 kB)
  Using cached tqdm-4.54.1-py2.py3-none-any.whl (69 kB)
  Using cached tqdm-4.54.0-py2.py3-none-any.whl (69 kB)
  Using cached tqdm-4.53.0-py2.py3-none-any.whl (70 kB)
  Using cached tqdm-4.52.0-py2.py3-none-any.whl (71 kB)
  Using cached tqdm-4.51.0-py2.py3-none-any.whl (70 kB)
  Using cached tqdm-4.50.2-py2.py3-none-any.whl (70 kB)
  Using cached tqdm-4.50.1-py2.py3-none-any.whl (70 kB)
  Using cached tqdm-4.50.0-py2.py3-none-any.whl (70 kB)
  Using cached tqdm-4.49.0-py2.py3-none-any.whl (69 kB)
  Using cached tqdm-4.48.2-py2.py3-none-any.whl (68 kB)
  Using cached tqdm-4.48.1-py2.py3-none-any.whl (68 kB)
  Using cached tqdm-4.48.0-py2.py3-none-any.whl (67 kB)
  Using cached tqdm-4.47.0-py2.py3-none-any.whl (66 kB)
  Using cached tqdm-4.46.1-py2.py3-none-any.whl (63 kB)
  Using cached tqdm-4.46.0-py2.py3-none-any.whl (63 kB)
  Using cached tqdm-4.45.0-py2.py3-none-any.whl (60 kB)
  Using cached tqdm-4.44.1-py2.py3-none-any.whl (60 kB)
  Using cached tqdm-4.44.0-py2.py3-none-any.whl (60 kB)
  Using cached tqdm-4.43.0-py2.py3-none-any.whl (59 kB)
  Using cached tqdm-4.42.1-py2.py3-none-any.whl (59 kB)
  Using cached tqdm-4.42.0-py2.py3-none-any.whl (59 kB)
  Using cached tqdm-4.41.1-py2.py3-none-any.whl (56 kB)
  Using cached tqdm-4.41.0-py2.py3-none-any.whl (56 kB)
  Using cached tqdm-4.40.2-py2.py3-none-any.whl (55 kB)
  Using cached tqdm-4.40.1-py2.py3-none-any.whl (55 kB)
  Using cached tqdm-4.40.0-py2.py3-none-any.whl (54 kB)
  Using cached tqdm-4.39.0-py2.py3-none-any.whl (53 kB)
  Using cached tqdm-4.38.0-py2.py3-none-any.whl (53 kB)
  Using cached tqdm-4.37.0-py2.py3-none-any.whl (53 kB)
  Using cached tqdm-4.36.1-py2.py3-none-any.whl (52 kB)
  Using cached tqdm-4.36.0-py2.py3-none-any.whl (52 kB)
  Using cached tqdm-4.35.0-py2.py3-none-any.whl (50 kB)
  Using cached tqdm-4.34.0-py2.py3-none-any.whl (50 kB)
  Using cached tqdm-4.33.0-py2.py3-none-any.whl (50 kB)
  Using cached tqdm-4.32.2-py2.py3-none-any.whl (50 kB)
  Using cached tqdm-4.32.1-py2.py3-none-any.whl (49 kB)
  Using cached tqdm-4.32.0-py2.py3-none-any.whl (49 kB)
  Using cached tqdm-4.31.1-py2.py3-none-any.whl (48 kB)
  Using cached tqdm-4.31.0-py2.py3-none-any.whl (48 kB)
  Using cached tqdm-4.30.0-py2.py3-none-any.whl (47 kB)
  Using cached tqdm-4.29.1-py2.py3-none-any.whl (46 kB)
  Using cached tqdm-4.29.0-py2.py3-none-any.whl (46 kB)
  Using cached tqdm-4.28.1-py2.py3-none-any.whl (45 kB)
  Using cached tqdm-4.28.0-py2.py3-none-any.whl (43 kB)
  Using cached tqdm-4.27.0-py2.py3-none-any.whl (44 kB)
  Using cached tqdm-4.26.0-py2.py3-none-any.whl (43 kB)
  Using cached tqdm-4.25.0-py2.py3-none-any.whl (43 kB)
  Using cached tqdm-4.24.0-py2.py3-none-any.whl (43 kB)
  Using cached tqdm-4.23.4-py2.py3-none-any.whl (42 kB)
  Using cached tqdm-4.23.3-py2.py3-none-any.whl (42 kB)
  Using cached tqdm-4.23.2-py2.py3-none-any.whl (42 kB)
  Using cached tqdm-4.23.1-py2.py3-none-any.whl (42 kB)
  Using cached tqdm-4.23.0-py2.py3-none-any.whl (42 kB)
  Using cached tqdm-4.22.0-py2.py3-none-any.whl (42 kB)
  Using cached tqdm-4.21.0-py2.py3-none-any.whl (42 kB)
  Using cached tqdm-4.20.0-py2.py3-none-any.whl (41 kB)
  Using cached tqdm-4.19.9-py2.py3-none-any.whl (52 kB)
  Using cached tqdm-4.19.8-py2.py3-none-any.whl (52 kB)
  Using cached tqdm-4.19.7-py2.py3-none-any.whl (52 kB)
  Using cached tqdm-4.19.6-py2.py3-none-any.whl (52 kB)
  Using cached tqdm-4.19.5-py2.py3-none-any.whl (51 kB)
  Using cached tqdm-4.19.4-py2.py3-none-any.whl (50 kB)
  Using cached tqdm-4.19.2-py2.py3-none-any.whl (50 kB)
  Using cached tqdm-4.19.1.post1-py2.py3-none-any.whl (51 kB)
  Using cached tqdm-4.19.1-py2.py3-none-any.whl (50 kB)
  Using cached tqdm-4.18.0-py2.py3-none-any.whl (48 kB)
  Using cached tqdm-4.17.1-py2.py3-none-any.whl (47 kB)
  Using cached tqdm-4.17.0-py2.py3-none-any.whl (47 kB)
  Using cached tqdm-4.16.0-py2.py3-none-any.whl (47 kB)
  Using cached tqdm-4.15.0-py2.py3-none-any.whl (46 kB)
  Using cached tqdm-4.14.0-py2.py3-none-any.whl (46 kB)
  Using cached tqdm-4.13.0-py2.py3-none-any.whl (46 kB)
  Using cached tqdm-4.12.0-py2.py3-none-any.whl (46 kB)
  Using cached tqdm-4.11.2-py2.py3-none-any.whl (46 kB)
  Using cached tqdm-4.11.1-py2.py3-none-any.whl (45 kB)
  Using cached tqdm-4.11.0-py2.py3-none-any.whl (45 kB)
  Using cached tqdm-4.10.0-py2.py3-none-any.whl (43 kB)
  Using cached tqdm-4.9.0-py2.py3-none-any.whl (42 kB)
  Using cached tqdm-4.8.4-py2.py3-none-any.whl (39 kB)
  Using cached tqdm-4.8.3-py2.py3-none-any.whl (42 kB)
  Using cached tqdm-4.8.2-py2.py3-none-any.whl (42 kB)
  Using cached tqdm-4.8.1-py2.py3-none-any.whl (42 kB)
  Using cached tqdm-4.7.6-py2.py3-none-any.whl (40 kB)
  Using cached tqdm-4.7.4-py2.py3-none-any.whl (40 kB)
  Using cached tqdm-4.7.2-py2.py3-none-any.whl (40 kB)
  Using cached tqdm-4.7.1-py2.py3-none-any.whl (39 kB)
  Using cached tqdm-4.7.0-py2.py3-none-any.whl (39 kB)
  Using cached tqdm-4.6.2-py2.py3-none-any.whl (38 kB)
  Using cached tqdm-4.6.1-py2.py3-none-any.whl (38 kB)
  Using cached tqdm-4.5.2-py2.py3-none-any.whl (34 kB)
  Using cached tqdm-4.5.0-py2.py3-none-any.whl (34 kB)
  Using cached tqdm-4.4.3-py2.py3-none-any.whl (33 kB)
  Using cached tqdm-4.4.1-py2.py3-none-any.whl (32 kB)
  Using cached tqdm-4.4.0-py2.py3-none-any.whl (32 kB)
  Using cached tqdm-4.1.0-py2.py3-none-any.whl (29 kB)
  Using cached tqdm-3.8.0-py2.py3-none-any.whl (28 kB)
  Using cached tqdm-3.7.1-py2.py3-none-any.whl (28 kB)
  Using cached tqdm-3.7.0-py2.py3-none-any.whl (28 kB)
  Using cached tqdm-3.4.0-py2.py3-none-any.whl (26 kB)
  Using cached tqdm-3.1.4-py2.py3-none-any.whl (19 kB)
  Using cached tqdm-3.1.3-py2.py3-none-any.whl (19 kB)
  Using cached tqdm-2.2.4-py2.py3-none-any.whl (17 kB)
  Using cached tqdm-2.2.3-py2.py3-none-any.whl (17 kB)
  Using cached tqdm-2.0.0-py2.py3-none-any.whl (16 kB)
  Using cached tqdm-1.0.tar.gz (1.8 kB)
INFO: pip is looking at multiple versions of brigit to determine which version is compatible with other requirements. This could take a while.
Collecting brigit
  Downloading http://sfw.sf.smle.co:8080/sfw/pip/brigit/brigit-1.3.0-py2.py3-none-any.whl (8.6 kB)
  Using cached brigit-1.2.tar.gz (2.5 kB)
  Using cached brigit-1.1.tar.gz (2.5 kB)
  Using cached brigit-1.0.tar.gz (2.5 kB)
INFO: pip is looking at multiple versions of pandas to determine which version is compatible with other requirements. This could take a while.
Collecting pandas
  Using cached pandas-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl (11.6 MB)
INFO: pip is looking at multiple versions of brigit to determine which version is compatible with other requirements. This could take a while.
  Using cached pandas-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl (11.6 MB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. If you want to abort this run, you can press Ctrl + C to do so. To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
  Using cached pandas-1.3.1-cp39-cp39-macosx_10_9_x86_64.whl (11.3 MB)
  Using cached pandas-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl (11.6 MB)
  Using cached pandas-1.2.5-cp39-cp39-macosx_10_9_x86_64.whl (10.7 MB)
  Using cached pandas-1.2.4-cp39-cp39-macosx_10_9_x86_64.whl (10.7 MB)
  Using cached pandas-1.2.3-cp39-cp39-macosx_10_9_x86_64.whl (10.7 MB)
INFO: pip is looking at multiple versions of pandas to determine which version is compatible with other requirements. This could take a while.
  Using cached pandas-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl (10.7 MB)
  Using cached pandas-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl (10.7 MB)
  Using cached pandas-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl (10.7 MB)
  Using cached pandas-1.1.5-cp39-cp39-macosx_10_9_x86_64.whl (10.3 MB)
  Using cached pandas-1.1.4-cp39-cp39-macosx_10_9_x86_64.whl (10.3 MB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. If you want to abort this run, you can press Ctrl + C to do so. To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
  Using cached pandas-1.1.3-cp39-cp39-macosx_10_9_x86_64.whl (10.3 MB)
  Using cached pandas-1.1.2.tar.gz (5.2 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
  Using cached pandas-1.1.1.tar.gz (5.2 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
  Using cached pandas-1.1.0.tar.gz (5.2 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
  Using cached pandas-1.0.5.tar.gz (5.0 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
  Using cached pandas-1.0.4.tar.gz (5.0 MB)
  Installing build dependencies: started
  Installing build dependencies: still running...
  Installing build dependencies: still running...
  Installing build dependencies: finished with status 'error'
  Using cached pandas-1.0.3.tar.gz (5.0 MB)
  Installing build dependencies: started
  Installing build dependencies: still running...
  Installing build dependencies: still running...
  Installing build dependencies: finished with status 'error'
  Using cached pandas-1.0.2.tar.gz (5.0 MB)
  Installing build dependencies: started
  Installing build dependencies: still running...
  Installing build dependencies: still running...
  Installing build dependencies: finished with status 'error'
  Using cached pandas-1.0.1.tar.gz (4.9 MB)
  Installing build dependencies: started
  Installing build dependencies: still running...
  Installing build dependencies: still running...
  Installing build dependencies: finished with status 'error'
  Using cached pandas-1.0.0.tar.gz (4.8 MB)
  Installing build dependencies: started
  Installing build dependencies: still running...
  Installing build dependencies: still running...
  Installing build dependencies: finished with status 'error'
  Using cached pandas-0.25.3.tar.gz (12.6 MB)
  Using cached pandas-0.25.2.tar.gz (12.6 MB)
  Using cached pandas-0.25.1.tar.gz (12.6 MB)
  Using cached pandas-0.25.0.tar.gz (12.6 MB)
  Using cached pandas-0.24.2.tar.gz (11.8 MB)
  Using cached pandas-0.24.1.tar.gz (11.8 MB)
  Using cached pandas-0.24.0.tar.gz (11.8 MB)
  Using cached pandas-0.23.4.tar.gz (10.5 MB)
  Using cached pandas-0.23.3.tar.gz (10.5 MB)
  Using cached pandas-0.23.2.tar.gz (10.0 MB)
  Using cached pandas-0.23.1.tar.gz (13.1 MB)
  Using cached pandas-0.23.0.tar.gz (13.1 MB)
  Using cached pandas-0.22.0.tar.gz (11.3 MB)
  Installing build dependencies: started
  Installing build dependencies: still running...
  Installing build dependencies: finished with status 'error'
  Using cached pandas-0.21.1.tar.gz (11.3 MB)
  Installing build dependencies: started
  Installing build dependencies: still running...
  Installing build dependencies: finished with status 'error'
  Using cached pandas-0.21.0.tar.gz (11.3 MB)
  Installing build dependencies: started
  Installing build dependencies: still running...
  Installing build dependencies: finished with status 'error'
  Using cached pandas-0.20.3.tar.gz (10.4 MB)
  Using cached pandas-0.20.2.tar.gz (10.3 MB)
  Using cached pandas-0.20.1.tar.gz (10.3 MB)
  Using cached pandas-0.20.0.tar.gz (10.3 MB)
  Using cached pandas-0.19.2.tar.gz (9.2 MB)

Code of Conduct

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:15 (8 by maintainers)

github_iconTop GitHub Comments

2reactions
pfmoorecommented, Oct 6, 2021

Personally, I feel that any attempt to preserve the order of normal requirements and -e is problematic. The logic of “options and positional arguments are independent” is common, and I’m concerned that not following that will be confusing for users. Furthermore, we have a long-outstanding intention to switch our option parsing from optparse to “something more modern” (probably click) and when we do that, I’d rather not have non-standard semantics that could potentially be difficult to port to a new library.

But I’m happy to hear what the other pip developers say here - I don’t have a strong opinion, so if someone else does, I’ll defer to them.

1reaction
uranusjrcommented, Oct 6, 2021

Relying on callbacks has an additional issue of relying on the argument parsing library calling them sequentially. I don’t think either optparse or argparse guarantees that, and it’s not unimaginable for either of them to implement some sort of optimisation that breaks this. So assuming we don’t do manual sys.argv parsing (it seems like the case), this is probably not possible unless we switch to a parsing library that natively guarantees to preserve argument ordering.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Better Python dependency while packaging your project
txt will result in different packages being installed every time, then new versions of sub-dependencies will be released. Pip doesn't have dependency resolution...
Read more >
Dependency Resolution - pip documentation v22.3.1
The process of determining which version of a dependency to install is known as dependency resolution. This behaviour can be disabled by passing...
Read more >
Commands | Documentation | Poetry - Python dependency ...
Options # · --without : The dependency groups to ignore. · --why : When showing the full list, or a --tree for a...
Read more >
python - requirements.txt vs setup.py - Stack Overflow
txt or dependencies -dev.txt . Those serve the same purpose as dependencies.txt but generally list additional dependencies of interest to developers of the ......
Read more >
Pipenv: A Guide to the New Python Packaging Tool
Dependency Management with requirements.txt; Development of Projects with Different ... A very common tool for this is virtualenv (or venv in Python 3)....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found