How does PIP determine the version of a dependency of multiple dependents

后端 未结 2 763
刺人心
刺人心 2021-01-24 13:06

Let\'s assume we have the following dependency tree in Python using PIP as package installer:

A==1.2.1:
|  - B==1.5.4
|  - C==?.?.?

D==1.3.0:
|  - C==?.?.?


        
相关标签:
2条回答
  • 2021-01-24 13:23

    On this topic, things will change relatively soon. Since pip's developers are currently working on a new dependency resolver:

    • https://pyfound.blogspot.com/2020/03/new-pip-resolver-to-roll-out-this-year.html

    To test it today, you might want to install pip 20.2b1 and enable the unstable feature "resolver", with for example either one of the following:

    • PIP_UNSTABLE_FEATURE=resolver python -m pip install SomeProject
    • python -m pip --unstable-feature=resolver install SomeProject

    See the following link for more details:

    • https://discuss.python.org/t/announcement-pip-20-2b1-release/4242

    Other references:

    • http://www.ei8fdb.org/thoughts/2020/05/test-pips-alpha-resolver-and-help-us-document-dependency-conflicts/
    • https://pradyunsg.me/blog/2020/03/27/pip-resolver-testing/
    • https://www.pythonpodcast.com/pip-resolver-dependency-management-episode-264/

    Update pip 20.2

    • https://pythoninsider.blogspot.com/2020/07/upgrade-pip-20-2-changes-20-3.html
    0 讨论(0)
  • 2021-01-24 13:36

    When pip installs a package, it automatically installs any dependent Python packages without checking if these conflict with previously installed packages. It will install a package and any of its dependencies regardless of the state of the existing installation. Because of this, a user with a working installation of, for example, Google Tensorflow, can find that it stops working having used pip to install a different package that requires a different version of the dependent NumPy library than the one used by Tensorflow. In some cases, the package may appear to work but produce different results in detail.

    Anaconda (Python distribution) - Wikipedia

    0 讨论(0)
提交回复
热议问题