ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. selenium-update 0.0.0 requires selenium<4,>=3.141.0, but you have selenium 4.4.3 which is incompatible. robotframework-applicationlibrary 1.0.0 requires selenium==3.141.0, but you have selenium 4.4.3 which is incompatible. robotframework-appiumlibrary 1.6.3 requires selenium<4,>=2.47.1, but you have selenium 4.4.3 which is incompatible. appium-python-client 1.3.0 requires selenium<4,>=3.14.1, but you have selenium 4.4.3 which is incompatible. Successfully installed robotframework-5.0.1 robotframework-sudslibrary-aljcalandra-1.1.4 selenium-4.4.3
but when we requiring another library, which requires another selenium version.
I would recommend that you install each package without its dependencies. There is a switch --no-deps that if you do, for example, pip install --no-deps robotframework-seleniumlibrary it won’t install selenium for example. This will allow you to install the version you want. If you are doing your install with a requirements file then the command is more like pip install --no-deps -r requirements.txt.
Other than working with the various package maintainers to update their packages to support a wider range, this would be my recommended solution.
In addition because you are not automatically installing dependencies you will bneed to manually install them. Instead of finding out what packages it needs by running or importing under the python interpreter for each an everyone, you can start to see what are a packages dependencies using pip show on an installed package. For example here is mine for checking robotframework-seleniumlibrary
$ pip show robotframework-seleniumlibrary
Name: robotframework-seleniumlibrary
Version: 5.1.3
Summary: Web testing library for Robot Framework
Home-page: https://github.com/robotframework/SeleniumLibrary
Author: Tatu Aalto
Author-email: aalto.tatu@gmail.com
License: Apache License 2.0
Location: c:\projects\testbash\py39-env\lib\site-packages
Requires: robotframework, robotframework-pythonlibcore, selenium
Required-by: eyes-robotframework, robotframework-react, robotframework-seleniumtestability
Notice near the bottom the Requires: line. There might be other ways to do this; noting I just looked this up myself. I would have gone to each packages setup.py or other install code to see.
@EdManlove That didn’t help, then I tried
pip install robotframework-zoomba --no-binary :all:
Then I got this error.
error: subprocess-exited-with-error
× Running setup.py install for psutil did not run successfully.
│ exit code: 1
╰─> [40 lines of output]
running install
C:\Users\MohamedRashad\AppData\Local\Programs\Python\Python310\lib\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
…
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> psutil
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
Zoomba requires one version and I also wanted to install Application Library, when I install that, it required another version of Selenium Library. That’s why I was asking, what is the solution for dependency conflicts.
Use Zoomba 2.14.3, this was the last version before Zoomba split off the desktop and mobile libraries into application library. More on this is explained in the 3.0.0 release notes.
a. pip install robotframework-zoomba==2.14.3