install_requires 层次结构:ContextualVersionConflict

install_requires hierarchy: ContextualVersionConflict

假设我有一个 main_package.

其中 setup.cfg 有:

install_requires = 

     importlib_metadata; python_version < "3.8"

     not_main_package>= 15.1

我还有一个not_main_package 16.0

其中 setup.cfg 有:


install_requires =

     importlib_metadata >= 3.6

我愿意:

$ pip install importlib_metadata==1.5.0
$ install main_package

我得到一个错误:

pkg_resources.ContextualVersionConflict: (importlib-metadata 1.5.0 (/usr/local/lib/python3.7/site-packages), Requirement.parse('importlib-metadata>=3.6'), {'not_main_package'})

我说得对吗 parent 的 (main_package) install_requires 具有更高的优先级,将忽略 child 的 (not_main_package) install_requires,因此,导致 ContextualVersionConflict?

您应该手动安装所需版本的 importlib_metadata