-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Description
What did you want to do?
I liked to use
pip list --outdated --format freeze | sed 's/==.*//' | xargs --no-run-if-empty pip install --upgrade --upgrade-strategy eager
to update all packages. However, this updates packages beyond the requirements of installed packages, which pip
ignores, leading to conflicts.
Same thing even for
pip list --format freeze | sed 's/==.*//' | xargs --no-run-if-empty pip install --upgrade --upgrade-strategy eager
Now, the new resolver looks promising in the second case (it still ignores installed packages, so --outdated
is not an option, but that's not too much of an issue):
pip list --format freeze | sed 's/==.*//' | xargs --no-run-if-empty pip install --upgrade --upgrade-strategy eager --use-feature=2020-resolver
It upgrades only what's possible to upgrade without causing conflicts, and even downgrades what's required to resolve conflicts. It's basically a one-stop-shop to fix a set of installed packages. Nicely done!
However, it's slow:
pip list --outdated
takes ~15spip list | sed | xargs pip install
takes ~9s with the old resolver (in its 2nd run when all package installation have finished), but it takes ~55s with the new resolver (again, in its 2nd run without package installation)
I'm surprised that pip list | sed | xargs pip install
is faster than pip list --outdated
because I expect the latter to do much more than the former, but that's not what I am worried about. But note how much slower pip list | sed | xargs pip install
is with the new resolver. I first suspected additional (repeated) HTTP requests for the same packages as an issue, but
pip list --format freeze | sed 's/==.*//' | xargs --no-run-if-empty pip install --upgrade --upgrade-strategy eager --use-feature=2020-resolver -v | grep GET | sort
shows the same (125) requests as
pip list --outdated -v | grep GET | sort
Additional information
absl-py==0.11.0
appdirs==1.4.4
astroid==2.4.2
astunparse==1.6.3
bandit==1.6.2
black==20.8b1
blessed==1.17.11
cachetools==4.1.1
certifi==2020.11.8
chardet==3.0.4
-e [email protected]:user/myproj.git@hash#egg=myproj
click==7.1.2
colour-science==0.3.15
cycler==0.10.0
decorator==4.4.2
descartes==1.1.0
docopt==0.6.2
ExifRead==2.3.2
flake8==3.8.4
flatbuffers==1.12
flyingcircus==0.1.3.2
flyingcircus-numeric==0.1.1.2
gast==0.3.3
gitdb==4.0.5
GitPython==3.1.11
google-auth==1.23.0
google-auth-oauthlib==0.4.2
google-pasta==0.2.0
grpcio==1.32.0
h5py==2.10.0
humanize==3.1.0
idna==2.10
imageio==2.9.0
isort==5.6.4
joblib==0.17.0
Keras==2.4.3
Keras-Preprocessing==1.1.2
kiwisolver==1.3.1
lazy-object-proxy==1.4.3
lxml==4.6.1
Markdown==3.3.3
matplotlib==3.3.3
mccabe==0.6.1
mizani==0.7.2
mypy==0.790
mypy-extensions==0.4.3
natsort==7.0.1
networkx==2.5
nose==1.3.7
numpy==1.19.4
oauthlib==3.1.0
opencv-contrib-python==4.4.0.46
opencv-python==4.4.0.46
opt-einsum==3.3.0
ordered-set==4.0.2
palettable==3.3.0
pandas==1.1.4
pathspec==0.8.1
patsy==0.5.1
pbr==5.5.1
Pillow==8.0.1
pipdeptree==1.0.0
pipreqs==0.4.10
plotnine==0.7.1
protobuf==3.13.0
psutil==5.7.3
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycodestyle==2.6.0
pydocstyle==5.1.1
pyflakes==2.2.0
pylama==7.7.1
pylint==2.6.0
pynrrd==0.4.2
pyparsing==2.4.7
python-dateutil==2.8.1
python-pptx==0.6.18
pytz==2020.4
PyWavelets==1.1.1
PyYAML==5.3.1
raster-geometry==0.1.4.1
regex==2020.11.11
requests==2.25.0
requests-oauthlib==1.3.0
rope==0.18.0
rsa==4.6
scikit-image==0.17.2
scikit-learn==0.23.2
scikit-plot==0.3.7
scipy==1.5.4
seaborn==0.11.0
setuptools-scm==4.1.2
SharedArray==3.2.1
silence-tensorflow==1.1.1
six==1.15.0
smmap==3.0.4
snowballstemmer==2.0.0
statsmodels==0.12.1
stevedore==3.2.2
temppathlib==1.0.4
tensorboard==2.4.0
tensorboard-plugin-wit==1.7.0
tensorflow==2.4.0rc1
tensorflow-addons==0.11.2
tensorflow-estimator==2.4.0rc0
termcolor==1.1.0
tf-explain==0.2.1
tf-keras-vis==0.5.3
threadpoolctl==2.1.0
tifffile==2020.10.1
toml==0.10.2
toolz==0.11.1
typed-ast==1.4.1
typeguard==2.10.0
typing-extensions==3.7.4.3
urllib3==1.26.1
wcwidth==0.2.5
Werkzeug==1.0.1
wrapt==1.12.1
xlrd==1.2.0
XlsxWriter==1.3.7
yarg==0.1.9
bandit==1.6.2
- GitPython [required: >=1.0.1, installed: 3.1.11]
- gitdb [required: >=4.0.1,<5, installed: 4.0.5]
- smmap [required: >=3.0.1,<4, installed: 3.0.4]
- PyYAML [required: >=3.13, installed: 5.3.1]
- six [required: >=1.10.0, installed: 1.15.0]
- stevedore [required: >=1.20.0, installed: 3.2.2]
- pbr [required: >=2.0.0,!=2.1.0, installed: 5.5.1]
black==20.8b1
- appdirs [required: Any, installed: 1.4.4]
- click [required: >=7.1.2, installed: 7.1.2]
- mypy-extensions [required: >=0.4.3, installed: 0.4.3]
- pathspec [required: >=0.6,<1, installed: 0.8.1]
- regex [required: >=2020.1.8, installed: 2020.11.11]
- toml [required: >=0.10.1, installed: 0.10.2]
- typed-ast [required: >=1.4.0, installed: 1.4.1]
- typing-extensions [required: >=3.7.4, installed: 3.7.4.3]
myproj==0.1
colour-science==0.3.15
- imageio [required: Any, installed: 2.9.0]
- numpy [required: Any, installed: 1.19.4]
- pillow [required: Any, installed: 8.0.1]
- scipy [required: Any, installed: 1.5.4]
- numpy [required: >=1.14.5, installed: 1.19.4]
- six [required: Any, installed: 1.15.0]
ExifRead==2.3.2
flake8==3.8.4
- mccabe [required: >=0.6.0,<0.7.0, installed: 0.6.1]
- pycodestyle [required: >=2.6.0a1,<2.7.0, installed: 2.6.0]
- pyflakes [required: >=2.2.0,<2.3.0, installed: 2.2.0]
humanize==3.1.0
- setuptools [required: Any, installed: 50.3.2]
Keras==2.4.3
- h5py [required: Any, installed: 2.10.0]
- numpy [required: >=1.7, installed: 1.19.4]
- six [required: Any, installed: 1.15.0]
- numpy [required: >=1.9.1, installed: 1.19.4]
- pyyaml [required: Any, installed: 5.3.1]
- scipy [required: >=0.14, installed: 1.5.4]
- numpy [required: >=1.14.5, installed: 1.19.4]
mypy==0.790
- mypy-extensions [required: >=0.4.3,<0.5.0, installed: 0.4.3]
- typed-ast [required: >=1.4.0,<1.5.0, installed: 1.4.1]
- typing-extensions [required: >=3.7.4, installed: 3.7.4.3]
natsort==7.0.1
nose==1.3.7
opencv-contrib-python==4.4.0.46
- numpy [required: >=1.17.3, installed: 1.19.4]
ordered-set==4.0.2
pipdeptree==1.0.0
- pip [required: >=6.0.0, installed: 20.2.4]
pipreqs==0.4.10
- docopt [required: Any, installed: 0.6.2]
- yarg [required: Any, installed: 0.1.9]
- requests [required: Any, installed: 2.25.0]
- certifi [required: >=2017.4.17, installed: 2020.11.8]
- chardet [required: >=3.0.2,<4, installed: 3.0.4]
- idna [required: >=2.5,<3, installed: 2.10]
- urllib3 [required: >=1.21.1,<1.27, installed: 1.26.1]
plotnine==0.7.1
- descartes [required: >=1.1.0, installed: 1.1.0]
- matplotlib [required: Any, installed: 3.3.3]
- cycler [required: >=0.10, installed: 0.10.0]
- six [required: Any, installed: 1.15.0]
- kiwisolver [required: >=1.0.1, installed: 1.3.1]
- numpy [required: >=1.15, installed: 1.19.4]
- pillow [required: >=6.2.0, installed: 8.0.1]
- pyparsing [required: >=2.0.3,!=2.1.6,!=2.1.2,!=2.0.4, installed: 2.4.7]
- python-dateutil [required: >=2.1, installed: 2.8.1]
- six [required: >=1.5, installed: 1.15.0]
- matplotlib [required: >=3.1.1, installed: 3.3.3]
- cycler [required: >=0.10, installed: 0.10.0]
- six [required: Any, installed: 1.15.0]
- kiwisolver [required: >=1.0.1, installed: 1.3.1]
- numpy [required: >=1.15, installed: 1.19.4]
- pillow [required: >=6.2.0, installed: 8.0.1]
- pyparsing [required: >=2.0.3,!=2.1.6,!=2.1.2,!=2.0.4, installed: 2.4.7]
- python-dateutil [required: >=2.1, installed: 2.8.1]
- six [required: >=1.5, installed: 1.15.0]
- mizani [required: >=0.7.1, installed: 0.7.2]
- matplotlib [required: >=3.1.1, installed: 3.3.3]
- cycler [required: >=0.10, installed: 0.10.0]
- six [required: Any, installed: 1.15.0]
- kiwisolver [required: >=1.0.1, installed: 1.3.1]
- numpy [required: >=1.15, installed: 1.19.4]
- pillow [required: >=6.2.0, installed: 8.0.1]
- pyparsing [required: >=2.0.3,!=2.1.6,!=2.1.2,!=2.0.4, installed: 2.4.7]
- python-dateutil [required: >=2.1, installed: 2.8.1]
- six [required: >=1.5, installed: 1.15.0]
- numpy [required: Any, installed: 1.19.4]
- palettable [required: Any, installed: 3.3.0]
- pandas [required: >=1.1.0, installed: 1.1.4]
- numpy [required: >=1.15.4, installed: 1.19.4]
- python-dateutil [required: >=2.7.3, installed: 2.8.1]
- six [required: >=1.5, installed: 1.15.0]
- pytz [required: >=2017.2, installed: 2020.4]
- numpy [required: >=1.16.0, installed: 1.19.4]
- pandas [required: >=1.1.0, installed: 1.1.4]
- numpy [required: >=1.15.4, installed: 1.19.4]
- python-dateutil [required: >=2.7.3, installed: 2.8.1]
- six [required: >=1.5, installed: 1.15.0]
- pytz [required: >=2017.2, installed: 2020.4]
- patsy [required: >=0.5.1, installed: 0.5.1]
- numpy [required: >=1.4, installed: 1.19.4]
- six [required: Any, installed: 1.15.0]
- scipy [required: >=1.2.0, installed: 1.5.4]
- numpy [required: >=1.14.5, installed: 1.19.4]
- statsmodels [required: >=0.11.1, installed: 0.12.1]
- numpy [required: >=1.15, installed: 1.19.4]
- pandas [required: >=0.21, installed: 1.1.4]
- numpy [required: >=1.15.4, installed: 1.19.4]
- python-dateutil [required: >=2.7.3, installed: 2.8.1]
- six [required: >=1.5, installed: 1.15.0]
- pytz [required: >=2017.2, installed: 2020.4]
- patsy [required: >=0.5, installed: 0.5.1]
- numpy [required: >=1.4, installed: 1.19.4]
- six [required: Any, installed: 1.15.0]
- scipy [required: >=1.1, installed: 1.5.4]
- numpy [required: >=1.14.5, installed: 1.19.4]
psutil==5.7.3
pylama==7.7.1
- mccabe [required: >=0.5.2, installed: 0.6.1]
- pycodestyle [required: >=2.3.1, installed: 2.6.0]
- pydocstyle [required: >=2.0.0, installed: 5.1.1]
- snowballstemmer [required: Any, installed: 2.0.0]
- pyflakes [required: >=1.5.0, installed: 2.2.0]
pylint==2.6.0
- astroid [required: >=2.4.0,<=2.5, installed: 2.4.2]
- lazy-object-proxy [required: ==1.4.*, installed: 1.4.3]
- six [required: ~=1.12, installed: 1.15.0]
- wrapt [required: ~=1.11, installed: 1.12.1]
- isort [required: >=4.2.5,<6, installed: 5.6.4]
- mccabe [required: >=0.6,<0.7, installed: 0.6.1]
- toml [required: >=0.7.1, installed: 0.10.2]
pynrrd==0.4.2
- numpy [required: >=1.11.1, installed: 1.19.4]
python-pptx==0.6.18
- lxml [required: >=3.1.0, installed: 4.6.1]
- Pillow [required: >=3.3.2, installed: 8.0.1]
- XlsxWriter [required: >=0.5.7, installed: 1.3.7]
raster-geometry==0.1.4.1
- appdirs [required: Any, installed: 1.4.4]
- flyingcircus [required: Any, installed: 0.1.3.2]
- appdirs [required: Any, installed: 1.4.4]
- blessed [required: Any, installed: 1.17.11]
- six [required: >=1.9.0, installed: 1.15.0]
- wcwidth [required: >=0.1.4, installed: 0.2.5]
- setuptools [required: Any, installed: 50.3.2]
- setuptools-scm [required: Any, installed: 4.1.2]
- setuptools [required: Any, installed: 50.3.2]
- flyingcircus-numeric [required: Any, installed: 0.1.1.2]
- appdirs [required: Any, installed: 1.4.4]
- blessed [required: Any, installed: 1.17.11]
- six [required: >=1.9.0, installed: 1.15.0]
- wcwidth [required: >=0.1.4, installed: 0.2.5]
- setuptools [required: Any, installed: 50.3.2]
- setuptools-scm [required: Any, installed: 4.1.2]
- setuptools [required: Any, installed: 50.3.2]
- numpy [required: Any, installed: 1.19.4]
- scipy [required: Any, installed: 1.5.4]
- numpy [required: >=1.14.5, installed: 1.19.4]
- setuptools [required: Any, installed: 50.3.2]
rope==0.18.0
scikit-image==0.17.2
- imageio [required: >=2.3.0, installed: 2.9.0]
- numpy [required: Any, installed: 1.19.4]
- pillow [required: Any, installed: 8.0.1]
- matplotlib [required: >=2.0.0,!=3.0.0, installed: 3.3.3]
- cycler [required: >=0.10, installed: 0.10.0]
- six [required: Any, installed: 1.15.0]
- kiwisolver [required: >=1.0.1, installed: 1.3.1]
- numpy [required: >=1.15, installed: 1.19.4]
- pillow [required: >=6.2.0, installed: 8.0.1]
- pyparsing [required: >=2.0.3,!=2.1.6,!=2.1.2,!=2.0.4, installed: 2.4.7]
- python-dateutil [required: >=2.1, installed: 2.8.1]
- six [required: >=1.5, installed: 1.15.0]
- networkx [required: >=2.0, installed: 2.5]
- decorator [required: >=4.3.0, installed: 4.4.2]
- numpy [required: >=1.15.1, installed: 1.19.4]
- pillow [required: >=4.3.0,!=7.1.1,!=7.1.0, installed: 8.0.1]
- PyWavelets [required: >=1.1.1, installed: 1.1.1]
- numpy [required: >=1.13.3, installed: 1.19.4]
- scipy [required: >=1.0.1, installed: 1.5.4]
- numpy [required: >=1.14.5, installed: 1.19.4]
- tifffile [required: >=2019.7.26, installed: 2020.10.1]
- numpy [required: >=1.15.1, installed: 1.19.4]
scikit-plot==0.3.7
- joblib [required: >=0.10, installed: 0.17.0]
- matplotlib [required: >=1.4.0, installed: 3.3.3]
- cycler [required: >=0.10, installed: 0.10.0]
- six [required: Any, installed: 1.15.0]
- kiwisolver [required: >=1.0.1, installed: 1.3.1]
- numpy [required: >=1.15, installed: 1.19.4]
- pillow [required: >=6.2.0, installed: 8.0.1]
- pyparsing [required: >=2.0.3,!=2.1.6,!=2.1.2,!=2.0.4, installed: 2.4.7]
- python-dateutil [required: >=2.1, installed: 2.8.1]
- six [required: >=1.5, installed: 1.15.0]
- scikit-learn [required: >=0.18, installed: 0.23.2]
- joblib [required: >=0.11, installed: 0.17.0]
- numpy [required: >=1.13.3, installed: 1.19.4]
- scipy [required: >=0.19.1, installed: 1.5.4]
- numpy [required: >=1.14.5, installed: 1.19.4]
- threadpoolctl [required: >=2.0.0, installed: 2.1.0]
- scipy [required: >=0.9, installed: 1.5.4]
- numpy [required: >=1.14.5, installed: 1.19.4]
seaborn==0.11.0
- matplotlib [required: >=2.2, installed: 3.3.3]
- cycler [required: >=0.10, installed: 0.10.0]
- six [required: Any, installed: 1.15.0]
- kiwisolver [required: >=1.0.1, installed: 1.3.1]
- numpy [required: >=1.15, installed: 1.19.4]
- pillow [required: >=6.2.0, installed: 8.0.1]
- pyparsing [required: >=2.0.3,!=2.1.6,!=2.1.2,!=2.0.4, installed: 2.4.7]
- python-dateutil [required: >=2.1, installed: 2.8.1]
- six [required: >=1.5, installed: 1.15.0]
- numpy [required: >=1.15, installed: 1.19.4]
- pandas [required: >=0.23, installed: 1.1.4]
- numpy [required: >=1.15.4, installed: 1.19.4]
- python-dateutil [required: >=2.7.3, installed: 2.8.1]
- six [required: >=1.5, installed: 1.15.0]
- pytz [required: >=2017.2, installed: 2020.4]
- scipy [required: >=1.0, installed: 1.5.4]
- numpy [required: >=1.14.5, installed: 1.19.4]
SharedArray==3.2.1
- numpy [required: Any, installed: 1.19.4]
silence-tensorflow==1.1.1
temppathlib==1.0.4
tensorflow==2.4.0rc1
- absl-py [required: ~=0.10, installed: 0.11.0]
- six [required: Any, installed: 1.15.0]
- astunparse [required: ~=1.6.3, installed: 1.6.3]
- six [required: >=1.6.1,<2.0, installed: 1.15.0]
- wheel [required: >=0.23.0,<1.0, installed: 0.35.1]
- flatbuffers [required: ~=1.12.0, installed: 1.12]
- gast [required: ==0.3.3, installed: 0.3.3]
- google-pasta [required: ~=0.2, installed: 0.2.0]
- six [required: Any, installed: 1.15.0]
- grpcio [required: ~=1.32.0, installed: 1.32.0]
- six [required: >=1.5.2, installed: 1.15.0]
- h5py [required: ~=2.10.0, installed: 2.10.0]
- numpy [required: >=1.7, installed: 1.19.4]
- six [required: Any, installed: 1.15.0]
- keras-preprocessing [required: ~=1.1.2, installed: 1.1.2]
- numpy [required: >=1.9.1, installed: 1.19.4]
- six [required: >=1.9.0, installed: 1.15.0]
- numpy [required: ~=1.19.2, installed: 1.19.4]
- opt-einsum [required: ~=3.3.0, installed: 3.3.0]
- numpy [required: >=1.7, installed: 1.19.4]
- protobuf [required: ~=3.13.0, installed: 3.13.0]
- setuptools [required: Any, installed: 50.3.2]
- six [required: >=1.9, installed: 1.15.0]
- six [required: ~=1.15.0, installed: 1.15.0]
- tensorboard [required: ~=2.3, installed: 2.4.0]
- absl-py [required: >=0.4, installed: 0.11.0]
- six [required: Any, installed: 1.15.0]
- google-auth [required: >=1.6.3,<2, installed: 1.23.0]
- cachetools [required: >=2.0.0,<5.0, installed: 4.1.1]
- pyasn1-modules [required: >=0.2.1, installed: 0.2.8]
- pyasn1 [required: >=0.4.6,<0.5.0, installed: 0.4.8]
- rsa [required: >=3.1.4,<5, installed: 4.6]
- pyasn1 [required: >=0.1.3, installed: 0.4.8]
- setuptools [required: >=40.3.0, installed: 50.3.2]
- six [required: >=1.9.0, installed: 1.15.0]
- google-auth-oauthlib [required: >=0.4.1,<0.5, installed: 0.4.2]
- google-auth [required: Any, installed: 1.23.0]
- cachetools [required: >=2.0.0,<5.0, installed: 4.1.1]
- pyasn1-modules [required: >=0.2.1, installed: 0.2.8]
- pyasn1 [required: >=0.4.6,<0.5.0, installed: 0.4.8]
- rsa [required: >=3.1.4,<5, installed: 4.6]
- pyasn1 [required: >=0.1.3, installed: 0.4.8]
- setuptools [required: >=40.3.0, installed: 50.3.2]
- six [required: >=1.9.0, installed: 1.15.0]
- requests-oauthlib [required: >=0.7.0, installed: 1.3.0]
- oauthlib [required: >=3.0.0, installed: 3.1.0]
- requests [required: >=2.0.0, installed: 2.25.0]
- certifi [required: >=2017.4.17, installed: 2020.11.8]
- chardet [required: >=3.0.2,<4, installed: 3.0.4]
- idna [required: >=2.5,<3, installed: 2.10]
- urllib3 [required: >=1.21.1,<1.27, installed: 1.26.1]
- grpcio [required: >=1.24.3, installed: 1.32.0]
- six [required: >=1.5.2, installed: 1.15.0]
- markdown [required: >=2.6.8, installed: 3.3.3]
- numpy [required: >=1.12.0, installed: 1.19.4]
- protobuf [required: >=3.6.0, installed: 3.13.0]
- setuptools [required: Any, installed: 50.3.2]
- six [required: >=1.9, installed: 1.15.0]
- requests [required: >=2.21.0,<3, installed: 2.25.0]
- certifi [required: >=2017.4.17, installed: 2020.11.8]
- chardet [required: >=3.0.2,<4, installed: 3.0.4]
- idna [required: >=2.5,<3, installed: 2.10]
- urllib3 [required: >=1.21.1,<1.27, installed: 1.26.1]
- setuptools [required: >=41.0.0, installed: 50.3.2]
- six [required: >=1.10.0, installed: 1.15.0]
- tensorboard-plugin-wit [required: >=1.6.0, installed: 1.7.0]
- werkzeug [required: >=0.11.15, installed: 1.0.1]
- wheel [required: >=0.26, installed: 0.35.1]
- tensorflow-estimator [required: >=2.4.0rc0,<2.5.0, installed: 2.4.0rc0]
- termcolor [required: ~=1.1.0, installed: 1.1.0]
- typing-extensions [required: ~=3.7.4, installed: 3.7.4.3]
- wheel [required: ~=0.35, installed: 0.35.1]
- wrapt [required: ~=1.12.1, installed: 1.12.1]
tensorflow-addons==0.11.2
- typeguard [required: >=2.7, installed: 2.10.0]
tf-explain==0.2.1
- opencv-python [required: >=4.1.0.25, installed: 4.4.0.46]
- numpy [required: >=1.17.3, installed: 1.19.4]
tf-keras-vis==0.5.3
- imageio [required: Any, installed: 2.9.0]
- numpy [required: Any, installed: 1.19.4]
- pillow [required: Any, installed: 8.0.1]
- numpy [required: Any, installed: 1.19.4]
- pillow [required: Any, installed: 8.0.1]
- scipy [required: Any, installed: 1.5.4]
- numpy [required: >=1.14.5, installed: 1.19.4]
toolz==0.11.1
xlrd==1.2.0