Search code examples
pythonpipinstall-requires

install_requires hierarchy: ContextualVersionConflict


Let's say I have a main_package.

In it's setup.cfg it has:

install_requires = 

     importlib_metadata; python_version < "3.8"

     not_main_package>= 15.1

Also I have a not_main_package 16.0.

In it's setup.cfg it has:


install_requires =

     importlib_metadata >= 3.6

I do:

$ pip install importlib_metadata==1.5.0
$ install main_package

I get an error:

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

Am I correct and the parent's (main_package) install_requires has higher priority and will ignore child's (not_main_package) install_requires, thus, causing the ContextualVersionConflict?


Solution

  • You should manually install the needed version of importlib_metadata