pymodbus-dev / modbus-simulator

Modbus simulator based on modbus-tk and kivy
Apache License 2.0
163 stars 55 forks source link

Installation fails due to conflicting six version #11

Open NeolithEra opened 5 years ago

NeolithEra commented 5 years ago

Hi, users are unable to run modbus-simulator due to dependency conflict with six package. As shown in the following full dependency graph of modbus-simulator, modbus-simulator requires six==1.10.0,while pymodbus==2.1.0 requires six==1.11.0.

According to pip’s “first found wins” installation strategy, six==1.10.0 is the actually installed version. However, six==1.10.0 does not satisfy six==1.11.0.

Dependency tree

modbus-simulator-1.0.0
| +-click(version range:==7.0)
| +-cython(version range:==0.29.2)
| +-docutils(version range:==0.13.1)
| +-kivy(version range:==1.10.1)
| +-kivy-garden(version range:==0.1.4)
| +-pygame(version range:==1.9.4)
| +-pyglet(version range:==1.2.4)
| +-pygments(version range:==2.1.3)
| | +-coverage(version range:*)
| | +-nose(version range:*)
| | +-pyflakes(version range:*)
| | +-pylint(version range:*)
| | +-tox(version range:*)
| +-pymodbus(version range:==2.1.0)
| | +-six(version range:==1.11.0)
| +-pyserial(version range:==3.2.1)
| +-requests(version range:==2.12.4)
| +-six(version range:==1.10.0)

Thanks for your help. Best, Neolith

NeolithEra commented 5 years ago

Solution

Fix your direct dependency to be six==1.11.0. I have checked this revision will not affect your downstream projects now.

@dhoomakethu May I submit a PR to solve this issue?

SmartPycg commented 2 years ago

ISSUES

Hi, users are unable to run modbus-simulator\ due to dependency conflict with six package.

As shown in the following full dependency graph of modbus-simulator\, modbus-simulator\ requires six==1.10.0,while pymodbus==2.1.0\ requires six==1.11.0.

modbus-simulator-1.0.0
| +-click(version range:==7.0)
| +-cython(version range:==0.29.2)
| +-docutils(version range:==0.13.1)
| +-kivy(version range:==1.10.1)
| +-kivy-garden(version range:==0.1.4)
| +-pygame(version range:==1.9.4)
| +-pyglet(version range:==1.2.4)
| +-pygments(version range:==2.1.3)
| | +-coverage(version range:*)
| | +-nose(version range:*)
| | +-pyflakes(version range:*)
| | +-pylint(version range:*)
| | +-tox(version range:*)
| +-pymodbus(version range:==2.1.0)
| | +-six(version range:==1.11.0)
| +-pyserial(version range:==3.2.1)
| +-requests(version range:==2.12.4)
| +-six(version range:==1.10.0)

Error

ERROR: Cannot install -r requirements (line 1) and six==1.10.0 because these package versions have conflicting dependencies.

The conflict is caused by:
    The user requested six==1.10.0
    pymodbus 2.1.0 depends on six==1.11.0

Solution

We analyze your project according to the call graph, and now give you the following suggestion, loosen your direct dependency to be six==* . I have checked that this version will not affect the normal operation of your program

Thanks for your help. Best, SmartPycg