Installing robotframework-zoomba is not working, throwing an error saying incompatible selenium version, how robot framework sort dependency conflicts

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.

How to resolve this issue?

I also tried to install some older version of pip install robotframework-zoomba==2.12.4 but then it was throwing a different issue.

error: legacy-install-failure

× Encountered error while trying to install package.
╰─> psutil

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.

1 Like

@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.

Hey @rashad,

You have a couple options here that i can think of off the top of my head:

  1. Use python virtual environments, personally I use pycharm and this functionality can all be handled through the UI.
    a. This way you keep Zoomba (selenium 4) in one environment and Application library (selenium 3) in another.
  2. 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
1 Like

@Wolfe1 @EdManlove Thank you both.
Issue got sorted when I install Hyper Robot Framework Support Plugin in my Pycharm

Go to Setting >> Plugins
Search as Hyper Robot Framework Support
click on Install and Restart Pycharm