Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pip install --upgrade randomly skips upgrading a dependency leading to dependency errors #8218

Closed
Ark-kun opened this issue May 10, 2020 · 8 comments
Labels
C: dependency resolution About choosing which dependencies to install

Comments

@Ark-kun
Copy link

Ark-kun commented May 10, 2020

Environment

  • pip version: 20.1 (also seen 18.1)
  • Python version: 3.5, 3.7
  • OS: Ubuntu 16.04.6 LTS

Description

We have presubmit tests in Travis that test our python SDK and some other projects that depend on our SDK.
Recently the tests started getting flaky. Tests for changes that do not change the code (e.g. change README) sometimes pass and sometimes fail. I've compared the successful and failing runs and noticed what seems to be a randomly-triggered bug in pip install --upgrade behavior.
When installing a wheel we want to test, some of its dependencies depend on the numpy. Most depend on numpy<2,>=1.16, but one dependency also supports older versions numpy<2,>=1.14.3. The environment where the installation runs has numpy-1.15.4 - enough for one dependency, fut too old for others.

We observe that pip install --upgrade randomly skips upgrading numpy which leads to broken dependencies that pip install reports in the end.

Expected behavior

I expect pip install --upgrade have deterministic behavior.

I expect that pip install --upgrade, when installing multiple dependencies requiring a different minimum version of some package, will eventually install a package version which satisfies all min version requirements.

I understand that pip does not do full dependency resolution. But given A requires p>=1; B requires p>=2; C requires p>=3; I expect p>=3 to be installed eventually.

Actual behavior

We observe what amounts to pip only checking a package requirement once (randomly selected) and if the requirement is satisfied it ignores other requirements.

I.e. sometimes it would work as expected:

Collecting p>=3

and sometimes it would

Requirement already satisfied, skipping upgrade: p>=1 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from A) (2)
...
ERROR: C has requirement p>=3, but you'll have p 1 which is incompatible.

How to Reproduce
Working on PoC.... It's a bit complicated since it involves git clone, setup.py bdist_wheel and then pip install.

Output

Works:

python3 -m pip install dist/tfx-0.22.0.dev0-py3-none-any.whl --upgrade
...
Collecting numpy<2,>=1.16
  Downloading numpy-1.18.4-cp35-cp35m-manylinux1_x86_64.whl (20.0 MB)
...
Installing collected packages: future, dill, numpy, httplib2, oauth2client, fastavro, pydot, avro-python3, grpcio, pyarrow, hdfs, pymongo, typing, crcmod, typing-extensions, google-cloud-datastore, google-cloud-vision, grpc-google-iam-v1, google-cloud-pubsub, google-cloud-bigquery, monotonic, fasteners, google-apitools, grpcio-gcp, cachetools, google-cloud-bigtable, google-cloud-spanner, google-cloud-language, google-cloud-videointelligence, google-cloud-dlp, apache-beam, gast, google-pasta, h5py, keras-applications, opt-einsum, google-auth-oauthlib, markdown, absl-py, werkzeug, tensorboard, tensorflow-estimator, scipy, keras-preprocessing, astor, tensorflow, tensorflow-metadata, tensorflow-serving-api, google-auth-httplib2, uritemplate, google-api-python-client, tfx-bsl, frozendict, docker, tensorflow-transform, joblib, scikit-learn, pandas, tensorflow-data-validation, jupyter-console, qtpy, qtconsole, prometheus-client, terminado, Send2Trash, notebook, widgetsnbextension, ipywidgets, jupyter, tensorflow-model-analysis, ml-metadata, tfx
  Attempting uninstall: numpy
    Found existing installation: numpy 1.15.4
    Uninstalling numpy-1.15.4:
      Successfully uninstalled numpy-1.15.4
...
Successfully installed Send2Trash-1.5.0 absl-py-0.8.1 apache-beam-2.20.0 astor-0.8.1 avro-python3-1.9.2.1 cachetools-3.1.1 crcmod-1.7 dill-0.3.1.1 docker-4.2.0 fastavro-0.21.24 fasteners-0.15 frozendict-1.2 future-0.18.2 gast-0.2.2 google-api-python-client-1.8.2 google-apitools-0.5.28 google-auth-httplib2-0.0.3 google-auth-oauthlib-0.4.1 google-cloud-bigquery-1.24.0 google-cloud-bigtable-1.0.0 google-cloud-datastore-1.7.4 google-cloud-dlp-0.13.0 google-cloud-language-1.3.0 google-cloud-pubsub-1.0.2 google-cloud-spanner-1.13.0 google-cloud-videointelligence-1.13.0 google-cloud-vision-0.42.0 google-pasta-0.2.0 grpc-google-iam-v1-0.12.3 grpcio-1.28.1 grpcio-gcp-0.2.2 h5py-2.10.0 hdfs-2.5.8 httplib2-0.12.0 ipywidgets-7.5.1 joblib-0.14.1 jupyter-1.0.0 jupyter-console-6.1.0 keras-applications-1.0.8 keras-preprocessing-1.1.0 markdown-3.2.2 ml-metadata-0.21.2 monotonic-1.5 notebook-6.0.3 numpy-1.18.4 oauth2client-3.0.0 opt-einsum-3.2.1 pandas-0.25.3 prometheus-client-0.7.1 pyarrow-0.16.0 pydot-1.4.1 pymongo-3.10.1 qtconsole-4.7.3 qtpy-1.9.0 scikit-learn-0.21.3 scipy-1.4.1 tensorboard-2.1.1 tensorflow-2.1.0 tensorflow-data-validation-0.21.5 tensorflow-estimator-2.1.0 tensorflow-metadata-0.21.2 tensorflow-model-analysis-0.21.6 tensorflow-serving-api-2.1.0 tensorflow-transform-0.21.2 terminado-0.8.3 tfx-0.22.0.dev0 tfx-bsl-0.21.4 typing-3.7.4.1 typing-extensions-3.7.4.2 uritemplate-3.0.1 werkzeug-1.0.1 widgetsnbextension-3.5.1

Does not work:

python3 -m pip install dist/tfx-0.22.0.dev0-py3-none-any.whl --upgrade
...
Requirement already satisfied, skipping upgrade: numpy<2,>=1.14.3 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from apache-beam[gcp]<3,>=2.20->tfx==0.22.0.dev0) (1.15.4)
# Why is it already satisfied? What about other packages asking for the more recent version?

...
ERROR: tfx-bsl 0.21.4 has requirement numpy<2,>=1.16, but you'll have numpy 1.15.4 which is incompatible.
ERROR: tensorflow 2.1.0 has requirement numpy<2.0,>=1.16.0, but you'll have numpy 1.15.4 which is incompatible.
ERROR: tensorflow-model-analysis 0.21.6 has requirement numpy<2,>=1.16, but you'll have numpy 1.15.4 which is incompatible.
ERROR: tensorflow-transform 0.21.2 has requirement numpy<2,>=1.16, but you'll have numpy 1.15.4 which is incompatible.
ERROR: tensorflow-data-validation 0.21.5 has requirement numpy<2,>=1.16, but you'll have numpy 1.15.4 which is incompatible.
Installing collected packages: absl-py, gast, tensorflow-estimator, opt-einsum, google-pasta, grpcio, keras-preprocessing, google-auth-oauthlib, werkzeug, markdown, tensorboard, h5py, keras-applications, scipy, astor, tensorflow, ml-metadata, tensorflow-serving-api, docker, dill, fastavro, pydot, pyarrow, avro-python3, future, typing, hdfs, httplib2, oauth2client, pymongo, typing-extensions, crcmod, google-cloud-language, google-cloud-vision, google-cloud-videointelligence, grpc-google-iam-v1, google-cloud-bigtable, google-cloud-bigquery, google-cloud-dlp, google-cloud-pubsub, cachetools, grpcio-gcp, monotonic, fasteners, google-apitools, google-cloud-datastore, google-cloud-spanner, apache-beam, tensorflow-metadata, Send2Trash, prometheus-client, terminado, notebook, widgetsnbextension, ipywidgets, jupyter-console, qtpy, qtconsole, jupyter, uritemplate, google-auth-httplib2, google-api-python-client, tfx-bsl, pandas, tensorflow-model-analysis, joblib, scikit-learn, tensorflow-transform, tensorflow-data-validation, frozendict, tfx
...
Successfully installed Send2Trash-1.5.0 absl-py-0.8.1 apache-beam-2.20.0 astor-0.8.1 avro-python3-1.9.2.1 cachetools-3.1.1 crcmod-1.7 dill-0.3.1.1 docker-4.2.0 fastavro-0.21.24 fasteners-0.15 frozendict-1.2 future-0.18.2 gast-0.2.2 google-api-python-client-1.8.2 google-apitools-0.5.28 google-auth-httplib2-0.0.3 google-auth-oauthlib-0.4.1 google-cloud-bigquery-1.24.0 google-cloud-bigtable-1.0.0 google-cloud-datastore-1.7.4 google-cloud-dlp-0.13.0 google-cloud-language-1.3.0 google-cloud-pubsub-1.0.2 google-cloud-spanner-1.13.0 google-cloud-videointelligence-1.13.0 google-cloud-vision-0.42.0 google-pasta-0.2.0 grpc-google-iam-v1-0.12.3 grpcio-1.28.1 grpcio-gcp-0.2.2 h5py-2.10.0 hdfs-2.5.8 httplib2-0.12.0 ipywidgets-7.5.1 joblib-0.14.1 jupyter-1.0.0 jupyter-console-6.1.0 keras-applications-1.0.8 keras-preprocessing-1.1.0 markdown-3.2.2 ml-metadata-0.21.2 monotonic-1.5 notebook-6.0.3 oauth2client-3.0.0 opt-einsum-3.2.1 pandas-0.25.3 prometheus-client-0.7.1 pyarrow-0.16.0 pydot-1.4.1 pymongo-3.10.1 qtconsole-4.7.3 qtpy-1.9.0 scikit-learn-0.21.3 scipy-1.4.1 tensorboard-2.1.1 tensorflow-2.1.0 tensorflow-data-validation-0.21.5 tensorflow-estimator-2.1.0 tensorflow-metadata-0.21.2 tensorflow-model-analysis-0.21.6 tensorflow-serving-api-2.1.0 tensorflow-transform-0.21.2 terminado-0.8.3 tfx-0.22.0.dev0 tfx-bsl-0.21.4 typing-3.7.4.1 typing-extensions-3.7.4.2 uritemplate-3.0.1 werkzeug-1.0.1 widgetsnbextension-3.5.1


# The only difference in the "Successfully installed" list is the lack of "numpy-1.18.4"

The full failed log can be currently found at https://travis-ci.com/github/kubeflow/pipelines/jobs/331132675, but it will go away soon.

@triage-new-issues triage-new-issues bot added the S: needs triage Issues/PRs that need to be triaged label May 10, 2020
@uranusjr
Copy link
Member

uranusjr commented May 11, 2020

Related: #8115

@Ark-kun
Copy link
Author

Ark-kun commented May 14, 2020

@uranusjr Do you think there is a way to stabilize pip install --upgrade behavior?

@pfmoore
Copy link
Member

pfmoore commented May 14, 2020

@Ark-kun The problem should be fixed in the new resolver - can you confirm if --unstable-feature=resolver fixes it? Note: That flag should not be used in production, it enables an alpha test version of the new resolver.

@pradyunsg pradyunsg added C: dependency resolution About choosing which dependencies to install S: awaiting response Waiting for a response/more information labels May 14, 2020
@triage-new-issues triage-new-issues bot removed the S: needs triage Issues/PRs that need to be triaged label May 14, 2020
@Ark-kun
Copy link
Author

Ark-kun commented May 21, 2020

can you confirm if --unstable-feature=resolver fixes it?

I've checked and the new resolver just fails. This is understandable, since some other dependencies (not the unstable one) are incompatible.

https://travis-ci.com/github/kubeflow/pipelines/jobs/338350956#L2500

++python3 -m pip install dist/tfx-0.22.0.dev0-py3-none-any.whl --upgrade --unstable-feature=resolver
Processing ./dist/tfx-0.22.0.dev0-py3-none-any.whl
Requirement already satisfied: jinja2==2.11.2 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tfx==0.22.0.dev0) (2.11.2)
Requirement already satisfied: protobuf==3.11.3 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tfx==0.22.0.dev0) (3.11.3)
Requirement already satisfied: pyyaml==5.3.1 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tfx==0.22.0.dev0) (5.3.1)
Requirement already satisfied: kubernetes==11.0.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tfx==0.22.0.dev0) (11.0.0)
Requirement already satisfied: six==1.14.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tfx==0.22.0.dev0) (1.14.0)
Requirement already satisfied: click==7.1.1 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tfx==0.22.0.dev0) (7.1.1)
Collecting ml-metadata==0.21.2
  Downloading ml_metadata-0.21.2-cp35-cp35m-manylinux2010_x86_64.whl (4.9 MB)
Collecting https://files.pythonhosted.org/packages/2d/bd/8ba8c1310cd741e0b83d8a064645a55c557df5a2f6b4beb11cd3a37457ed/tensorflow-transform-0.21.2.tar.gz#sha256=effabe3f75e15813ec16446b166b6425b353c3b07b632276b52fbcdd5264cc1b (from tfx==0.22.0.dev0)
  Downloading tensorflow-transform-0.21.2.tar.gz (241 kB)
Collecting tensorflow-data-validation==0.21.5
  Downloading tensorflow_data_validation-0.21.5-cp35-cp35m-manylinux2010_x86_64.whl (2.4 MB)
Requirement already satisfied: ipython==7.9.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tensorflow-data-validation==0.21.5->tfx==0.22.0.dev0) (7.9.0)
Collecting tfx-bsl==0.21.4
  Downloading tfx_bsl-0.21.4-cp35-cp35m-manylinux2010_x86_64.whl (1.9 MB)
Collecting tensorflow-metadata==0.21.2
  Downloading tensorflow_metadata-0.21.2-py2.py3-none-any.whl (31 kB)
Requirement already satisfied: googleapis-common-protos==1.51.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tensorflow-metadata==0.21.2->tensorflow-transform==0.21.2->tfx==0.22.0.dev0) (1.51.0)
Collecting https://files.pythonhosted.org/packages/4e/55/a12ded2c426a4d2bee73f88304c9c08ebbdbadb82569ebdd6a0c007cfd08/frozendict-1.2.tar.gz#sha256=774179f22db2ef8a106e9c38d4d1f8503864603db08de2e33be5b778230f6e45 (from tfx==0.22.0.dev0)
  Downloading frozendict-1.2.tar.gz (2.6 kB)
Collecting apache-beam==2.20.0
  Downloading apache_beam-2.20.0-cp35-cp35m-manylinux1_x86_64.whl (3.4 MB)
Requirement already satisfied: python-dateutil==2.8.1 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from apache-beam==2.20.0->tfx==0.22.0.dev0) (2.8.1)
Requirement already satisfied: mock==2.0.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from apache-beam==2.20.0->tfx==0.22.0.dev0) (2.0.0)
Requirement already satisfied: pytz==2019.3 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from apache-beam==2.20.0->tfx==0.22.0.dev0) (2019.3)
Requirement already satisfied: google-cloud-core==1.3.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from apache-beam==2.20.0->tfx==0.22.0.dev0) (1.3.0)
Collecting https://files.pythonhosted.org/packages/6b/b0/e595ce2a2527e169c3bcd6c33d2473c1918e0b7f6826a043ca1245dd4e5b/crcmod-1.7.tar.gz#sha256=dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e (from apache-beam==2.20.0->tfx==0.22.0.dev0)
  Downloading crcmod-1.7.tar.gz (89 kB)
Collecting https://files.pythonhosted.org/packages/c7/11/345f3173809cea7f1a193bfbf02403fff250a3360e0e118a1630985e547d/dill-0.3.1.1.tar.gz#sha256=42d8ef819367516592a825746a18073ced42ca169ab1f5f4044134703e7a049c (from apache-beam==2.20.0->tfx==0.22.0.dev0)
  Downloading dill-0.3.1.1.tar.gz (151 kB)
Collecting https://files.pythonhosted.org/packages/7f/32/df3e36fd705a00092f1ffa9f41ce1df8dcb594ae313d239b87861a41fc2e/google-apitools-0.5.28.tar.gz#sha256=c41792b0cb1a9d952545a95bb5a18376fd727e4c4977d6fa3f1643d1d51a7177 (from apache-beam==2.20.0->tfx==0.22.0.dev0)
  Downloading google-apitools-0.5.28.tar.gz (172 kB)
Collecting google-cloud-spanner==1.13.0
  Downloading google_cloud_spanner-1.13.0-py2.py3-none-any.whl (212 kB)
Requirement already satisfied: google-api-core==1.16.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from google-cloud-spanner==1.13.0->apache-beam==2.20.0->tfx==0.22.0.dev0) (1.16.0)
Collecting https://files.pythonhosted.org/packages/65/19/2060c8faa325fddc09aa67af98ffcb6813f39a0ad805679fa64815362b3a/grpc-google-iam-v1-0.12.3.tar.gz#sha256=0bfb5b56f648f457021a91c0df0db4934b6e0c300bd0f2de2333383fe958aa72 (from google-cloud-spanner==1.13.0->apache-beam==2.20.0->tfx==0.22.0.dev0)
  Downloading grpc-google-iam-v1-0.12.3.tar.gz (13 kB)
Requirement already satisfied: googleapis-common-protos==1.51.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from grpc-google-iam-v1==0.12.3->google-cloud-spanner==1.13.0->apache-beam==2.20.0->tfx==0.22.0.dev0) (1.51.0)
Collecting grpcio-gcp==0.2.2
  Downloading grpcio_gcp-0.2.2-py2.py3-none-any.whl (9.4 kB)
Collecting google-cloud-language==1.3.0
  Downloading google_cloud_language-1.3.0-py2.py3-none-any.whl (83 kB)
Requirement already satisfied: google-api-core==1.16.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from google-cloud-language==1.3.0->apache-beam==2.20.0->tfx==0.22.0.dev0) (1.16.0)
Collecting tensorflow-serving-api==2.1.0
  Downloading tensorflow_serving_api-2.1.0-py2.py3-none-any.whl (38 kB)
Collecting tensorflow==2.1.1
  Downloading tensorflow-2.1.1-cp35-cp35m-manylinux2010_x86_64.whl (421.8 MB)
Requirement already satisfied: wheel==0.34.2 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tensorflow==2.1.1->tfx==0.22.0.dev0) (0.34.2)
Requirement already satisfied: wrapt==1.12.1 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tensorflow==2.1.1->tfx==0.22.0.dev0) (1.12.1)
Requirement already satisfied: termcolor==1.1.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tensorflow==2.1.1->tfx==0.22.0.dev0) (1.1.0)
Collecting https://files.pythonhosted.org/packages/4e/35/11749bf99b2d4e3cceb4d55ca22590b0d7c2c62b9de38ac4a4a7f4687421/gast-0.2.2.tar.gz#sha256=fe939df4583692f0512161ec1c880e0a10e71e6a232da045ab8edd3756fbadf0 (from tensorflow==2.1.1->tfx==0.22.0.dev0)
  Downloading gast-0.2.2.tar.gz (10 kB)
Collecting Keras-Applications==1.0.8
  Downloading Keras_Applications-1.0.8-py3-none-any.whl (50 kB)
Collecting scipy==1.4.1
  Downloading scipy-1.4.1-cp35-cp35m-manylinux1_x86_64.whl (26.0 MB)
Collecting Keras-Preprocessing==1.1.0
  Downloading Keras_Preprocessing-1.1.0-py2.py3-none-any.whl (41 kB)
Collecting tensorflow-estimator==2.1.0
  Downloading tensorflow_estimator-2.1.0-py2.py3-none-any.whl (448 kB)
Collecting tensorboard==2.1.1
  Downloading tensorboard-2.1.1-py3-none-any.whl (3.8 MB)
Requirement already satisfied: requests==2.23.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tensorboard==2.1.1->tensorflow==2.1.1->tfx==0.22.0.dev0) (2.23.0)
Requirement already satisfied: google-auth==1.11.3 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from tensorboard==2.1.1->tensorflow==2.1.1->tfx==0.22.0.dev0) (1.11.3)
Collecting google-auth-oauthlib==0.4.1
  Downloading google_auth_oauthlib-0.4.1-py2.py3-none-any.whl (18 kB)
Requirement already satisfied: requests-oauthlib==1.3.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from google-auth-oauthlib==0.4.1->tensorboard==2.1.1->tensorflow==2.1.1->tfx==0.22.0.dev0) (1.3.0)
Collecting tensorflow-model-analysis==0.21.6
  Downloading tensorflow_model_analysis-0.21.6-py3-none-any.whl (1.5 MB)
Collecting pyarrow==0.15.1
  Downloading pyarrow-0.15.1-cp35-cp35m-manylinux2010_x86_64.whl (59.2 MB)
Collecting jupyter==1.0.0
  Downloading jupyter-1.0.0-py2.py3-none-any.whl (2.7 kB)
Requirement already satisfied: ipykernel==5.1.1 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (5.1.1)
Requirement already satisfied: nbconvert==5.5.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (5.5.0)
Collecting docker==4.2.0
  Downloading docker-4.2.0-py2.py3-none-any.whl (143 kB)
Requirement already satisfied: websocket-client==0.57.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from docker==4.2.0->tfx==0.22.0.dev0) (0.57.0)
Collecting https://files.pythonhosted.org/packages/3b/72/e6e483e2db953c11efa44ee21c5fdb6505c4dffa447b4263ca8af6676b62/absl-py-0.8.1.tar.gz#sha256=d9129186431e150d7fe455f1cb1ecbb92bb5dba9da9bc3ef7b012d98c4db2526 (from tfx==0.22.0.dev0)
  Downloading absl-py-0.8.1.tar.gz (103 kB)
Collecting grpcio==1.29.0
  Downloading grpcio-1.29.0-cp35-cp35m-manylinux2010_x86_64.whl (3.0 MB)
Collecting cachetools==3.1.1
  Downloading cachetools-3.1.1-py2.py3-none-any.whl (11 kB)
Collecting typing==3.7.4.1
  Downloading typing-3.7.4.1-py3-none-any.whl (25 kB)
Requirement already satisfied: certifi==2019.11.28 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from kubernetes==11.0.0->tfx==0.22.0.dev0) (2019.11.28)
Requirement already satisfied: urllib3==1.25.8 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from kubernetes==11.0.0->tfx==0.22.0.dev0) (1.25.8)
Collecting https://files.pythonhosted.org/packages/5a/80/acd1455bea0a9fcdc60a748a97dcbb3ff624726fb90987a0fc1c19e7a5a5/avro-python3-1.9.2.1.tar.gz#sha256=ca1e77a3da5ac98e8833588f71fb2e170b38e34787ee0e04920de0e9470b7d32 (from apache-beam==2.20.0->tfx==0.22.0.dev0)
  Downloading avro-python3-1.9.2.1.tar.gz (37 kB)
Collecting https://files.pythonhosted.org/packages/c0/7b/bc893e35d6ca46a72faa4b9eaac25c687ce60e1fbe978993fe2de1b0ff0d/oauth2client-3.0.0.tar.gz#sha256=5b5b056ec6f2304e7920b632885bd157fa71d1a7f3ddd00a43b1541a8d1a2460 (from apache-beam==2.20.0->tfx==0.22.0.dev0)
  Downloading oauth2client-3.0.0.tar.gz (77 kB)
Requirement already satisfied: pyasn1==0.4.8 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from oauth2client==3.0.0->apache-beam==2.20.0->tfx==0.22.0.dev0) (0.4.8)
Requirement already satisfied: pyasn1-modules==0.2.8 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from oauth2client==3.0.0->apache-beam==2.20.0->tfx==0.22.0.dev0) (0.2.8)
Requirement already satisfied: rsa==4.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from oauth2client==3.0.0->apache-beam==2.20.0->tfx==0.22.0.dev0) (4.0)
Requirement already satisfied: idna==2.9 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from requests==2.23.0->tensorboard==2.1.1->tensorflow==2.1.1->tfx==0.22.0.dev0) (2.9)
Requirement already satisfied: chardet==3.0.4 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from requests==2.23.0->tensorboard==2.1.1->tensorflow==2.1.1->tfx==0.22.0.dev0) (3.0.4)
Collecting fasteners==0.15
  Downloading fasteners-0.15-py2.py3-none-any.whl (23 kB)
Collecting https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9/future-0.18.2.tar.gz#sha256=b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d (from apache-beam==2.20.0->tfx==0.22.0.dev0)
  Downloading future-0.18.2.tar.gz (829 kB)
Collecting google-cloud-dlp==0.13.0
  Downloading google_cloud_dlp-0.13.0-py2.py3-none-any.whl (151 kB)
Collecting opt-einsum==3.2.1
  Downloading opt_einsum-3.2.1-py3-none-any.whl (63 kB)
Requirement already satisfied: google-api-core==1.16.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from google-cloud-core==1.3.0->apache-beam==2.20.0->tfx==0.22.0.dev0) (1.16.0)
Collecting google-cloud-datastore==1.7.4
  Downloading google_cloud_datastore-1.7.4-py2.py3-none-any.whl (82 kB)
Collecting google-pasta==0.2.0
  Downloading google_pasta-0.2.0-py3-none-any.whl (57 kB)
Collecting typing-extensions==3.7.4.2
  Downloading typing_extensions-3.7.4.2-py3-none-any.whl (22 kB)
Collecting https://files.pythonhosted.org/packages/ce/ed/803905d670b52fa0edfdd135337e545b4496c2ab3a222f1449b7256eb99f/httplib2-0.12.0.tar.gz#sha256=f61fb838a94ce3b349aa32c92fd8430f7e3511afdb18bf9640d647e30c90a6d6 (from apache-beam==2.20.0->tfx==0.22.0.dev0)
  Downloading httplib2-0.12.0.tar.gz (218 kB)
Collecting pydot==1.4.1
  Downloading pydot-1.4.1-py2.py3-none-any.whl (19 kB)
Requirement already satisfied: pyparsing==2.4.7 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from pydot==1.4.1->tensorflow-transform==0.21.2->tfx==0.22.0.dev0) (2.4.7)
Collecting pymongo==3.10.1
  Downloading pymongo-3.10.1-cp35-cp35m-manylinux2014_x86_64.whl (459 kB)
Requirement already satisfied: oauthlib==3.1.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from requests-oauthlib==1.3.0->google-auth-oauthlib==0.4.1->tensorboard==2.1.1->tensorflow==2.1.1->tfx==0.22.0.dev0) (3.1.0)
Collecting google-api-python-client==1.8.3
  Downloading google_api_python_client-1.8.3-py3-none-any.whl (58 kB)
Collecting google-auth-httplib2==0.0.3
  Downloading google_auth_httplib2-0.0.3-py2.py3-none-any.whl (6.3 kB)
Collecting uritemplate==3.0.1
  Downloading uritemplate-3.0.1-py2.py3-none-any.whl (15 kB)
Collecting google-cloud-vision==0.42.0
  Downloading google_cloud_vision-0.42.0-py2.py3-none-any.whl (435 kB)
Collecting google-cloud-bigtable==1.0.0
  Downloading google_cloud_bigtable-1.0.0-py2.py3-none-any.whl (232 kB)
Collecting pandas==0.25.3
  Downloading pandas-0.25.3-cp35-cp35m-manylinux1_x86_64.whl (10.3 MB)
Collecting google-cloud-videointelligence==1.13.0
  Downloading google_cloud_videointelligence-1.13.0-py2.py3-none-any.whl (177 kB)
Collecting astor==0.8.1
  Downloading astor-0.8.1-py2.py3-none-any.whl (27 kB)
Collecting https://files.pythonhosted.org/packages/82/39/2c0879b1bcfd1f6ad078eb210d09dbce21072386a3997074ee91e60ddc5a/hdfs-2.5.8.tar.gz#sha256=1be117549fc1285571bc51aedc15df5a203138dba02f9adfa26761b69a949370 (from apache-beam==2.20.0->tfx==0.22.0.dev0)
  Downloading hdfs-2.5.8.tar.gz (41 kB)
Requirement already satisfied: docopt==0.6.2 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from hdfs==2.5.8->apache-beam==2.20.0->tfx==0.22.0.dev0) (0.6.2)
Requirement already satisfied: pbr==5.1.1 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from mock==2.0.0->apache-beam==2.20.0->tfx==0.22.0.dev0) (5.1.1)
Collecting h5py==2.10.0
  Downloading h5py-2.10.0-cp35-cp35m-manylinux1_x86_64.whl (2.8 MB)
Collecting monotonic==1.5
  Downloading monotonic-1.5-py2.py3-none-any.whl (5.3 kB)
Collecting Markdown==3.2.2
  Downloading Markdown-3.2.2-py3-none-any.whl (88 kB)
Requirement already satisfied: importlib-metadata==1.5.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from Markdown==3.2.2->tensorboard==2.1.1->tensorflow==2.1.1->tfx==0.22.0.dev0) (1.5.0)
Collecting joblib==0.14.1
  Downloading joblib-0.14.1-py2.py3-none-any.whl (294 kB)
Collecting google-cloud-pubsub==1.0.2
  Downloading google_cloud_pubsub-1.0.2-py2.py3-none-any.whl (118 kB)
Collecting jupyter-console==6.1.0
  Downloading jupyter_console-6.1.0-py2.py3-none-any.whl (21 kB)
Requirement already satisfied: pygments==2.6.1 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from jupyter-console==6.1.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (2.6.1)
Requirement already satisfied: jupyter-client==5.2.4 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from jupyter-console==6.1.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (5.2.4)
Requirement already satisfied: prompt-toolkit==2.0.10 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from jupyter-console==6.1.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (2.0.10)
Requirement already satisfied: wcwidth==0.1.9 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from prompt-toolkit==2.0.10->jupyter-console==6.1.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (0.1.9)
Collecting scikit-learn==0.21.3
  Downloading scikit_learn-0.21.3-cp35-cp35m-manylinux1_x86_64.whl (6.6 MB)
Requirement already satisfied: markupsafe==1.1.1 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from jinja2==2.11.2->tfx==0.22.0.dev0) (1.1.1)
Requirement already satisfied: defusedxml==0.6.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (0.6.0)
Requirement already satisfied: nbformat==4.4.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (4.4.0)
Requirement already satisfied: bleach==3.1.5 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (3.1.5)
Requirement already satisfied: entrypoints==0.3 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (0.3)
Requirement already satisfied: mistune==0.8.4 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (0.8.4)
Requirement already satisfied: pandocfilters==1.4.2 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (1.4.2)
Requirement already satisfied: testpath==0.4.4 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (0.4.4)
Requirement already satisfied: traitlets==4.3.3 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (4.3.3)
Requirement already satisfied: jupyter-core==4.6.3 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (4.6.3)
Requirement already satisfied: ipython-genutils==0.2.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from nbformat==4.4.0->nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (0.2.0)
Requirement already satisfied: jsonschema==3.2.0 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from nbformat==4.4.0->nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (3.2.0)
Requirement already satisfied: decorator==4.4.2 in /home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages (from traitlets==4.3.3->nbconvert==5.5.0->jupyter==1.0.0->tensorflow-model-analysis==0.21.6->tfx==0.22.0.dev0) (4.4.2)
ERROR: Exception:
Traceback (most recent call last):
  File "/home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages/pip/_internal/cli/base_command.py", line 188, in _main
    status = self.run(options, args)
  File "/home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages/pip/_internal/cli/req_command.py", line 185, in wrapper
    return func(self, options, args)
  File "/home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages/pip/_internal/commands/install.py", line 333, in run
    reqs, check_supported_wheels=not options.target_dir
  File "/home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 80, in resolve
    self._result = resolver.resolve(requirements)
  File "/home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages/pip/_vendor/resolvelib/resolvers.py", line 413, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/home/travis/virtualenv/python3.5.6/lib/python3.5/site-packages/pip/_vendor/resolvelib/resolvers.py", line 323, in resolve
    raise ResolutionTooDeep(max_rounds)
pip._vendor.resolvelib.resolvers.ResolutionTooDeep: 100

@no-response no-response bot removed the S: awaiting response Waiting for a response/more information label May 21, 2020
@Ark-kun
Copy link
Author

Ark-kun commented May 21, 2020

Is it possible to make pip be deterministic at least? There is a ~66% chance that this would lead to success for us.

@ivirshup
Copy link

@pfmoore I just ran into this same issue, except the upgrade was less likely to happen (most of our dependencies depend on numpy). Locally, --unstable-feature=resolver works for me. I still get the Requirement already satisfied: log, but the upgrade happens.

@pradyunsg
Copy link
Member

pradyunsg commented Aug 30, 2020

@Ark-kun Could you try it again with the new resolver --unstable-feature=resolver? (or --use-feature=2020-resolver in pip 20.2 or later)

@uranusjr uranusjr added the S: awaiting response Waiting for a response/more information label Dec 29, 2020
@no-response
Copy link

no-response bot commented Jan 13, 2021

This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further.

@no-response no-response bot closed this as completed Jan 13, 2021
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 4, 2021
@pradyunsg pradyunsg removed the S: awaiting response Waiting for a response/more information label Mar 17, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
C: dependency resolution About choosing which dependencies to install
Projects
None yet
Development

No branches or pull requests

5 participants