oeg-upm / agora-wot

A Python-based framework for describing, discovering and accessing the Web of Things
Apache License 2.0
0 stars 1 forks source link

Installation fails due to conflicting rdflib version #1

Open NeolithEra opened 4 years ago

NeolithEra commented 4 years ago

Hi, users are unable to run Agora-wot due to dependency conflict with rdflib package. As shown in the following full dependency graph of Agora-wot, Agora-wot requires rdflib==4.2.1,while rdflib-jsonld* requires rdflib>=4.2.2.

According to pip’s “first found wins” installation strategy, rdflib 4.2.1 is the actually installed version. However, rdflib 4.2.1 does not satisfy rdflib>=4.2.2.

Dependency tree-----------

agora-wot - 0.2.20
| +- agora-py(install version:0.5.47 version range:*)
| | +- flask(install version:1.1.2 version range:*)
| | | +- click(install version:7.1.1 version range:>=5.1)
| | | +- itsdangerous(install version:1.1.0 version range:>=0.24)
| | | +- Jinja2(install version:2.11.2 version range:>=2.10.1)
| | | | +- MarkupSafe(install version:2.0.0a1 version range:>=0.23)
| | | +- Werkzeug(install version:1.0.1 version range:>=0.15)
| | +- flask-negotiate(install version:0.1.0 version range:*)
| | | +- flask(install version:1.1.2 version range:*)
| | | | +- click(install version:7.1.1 version range:>=5.1)
| | | | +- itsdangerous(install version:1.1.0 version range:>=0.24)
| | | | +- Jinja2(install version:2.11.2 version range:>=2.10.1)
| | | | +- Werkzeug(install version:1.0.1 version range:>=0.15)
| | +- futures(install version:3.3.0 version range:*)
| | +- hiredis(install version:1.0.1 version range:*)
| | +- networkx(install version:2.4 version range:>=2.0)
| | | +- decorator(install version:4.4.2 version range:>=4.3.0)
| | +- python-dateutil(install version:2.8.1 version range:*)
| | +- rdflib(install version:4.2.1 version range:==4.2.1)
| | +- redis(install version:2.10.6 version range:<3.0.0)
| | +- requests(install version:2.23.0 version range:*)
| | | +- certifi(install version:2020.4.5.1 version range:>=2017.4.17)
| | | +- chardet(install version:3.0.4 version range:>=3.0.2,<4)
| | | +- idna(install version:2.9 version range:>=2.5,<3)
| | | +- urllib3(install version:1.25.9 version range:>=1.21.1,<1.26)
| | +- rfc3987(install version:1.3.8 version range:*)
| | +- shortuuid(install version:1.0.1 version range:*)
| +- gunicorn(install version:20.0.4 version range:*)
| | +- setuptools(install version:46.1.3 version range:>=3.0)
| +- jsonpath-ng(install version:1.5.1 version range:*)
| +- jsonpath-rw(install version:1.4.0 version range:*)
| +- networkx(install version:2.4 version range:*)
| | +- decorator(install version:4.4.2 version range:>=4.3.0)
| +- pyld(install version:2.0.1 version range:*)
| | +- cachetools(install version:4.1.0 version range:*)
| | +- frozendict(install version:1.2 version range:*)
| | +- lxml(install version:4.5.0 version range:*)
| +- python-dateutil(install version:2.8.1 version range:*)
| +- rdflib(install version:4.2.1 version range:==4.2.1)
| +- rdflib-jsonld(install version:0.5.0 version range:*)
| | +- rdflib(install version:5.0.0rc1 version range:>=4.2.2)
| | | +- isodate(install version:0.6.0 version range:*)
| | | | +- six(install version:1.14.0 version range:*)
| | | +- pyparsing(install version:3.0.0a1 version range:*)
| | | +- six(install version:1.14.0 version range:*)
| +- requests(install version:2.23.0 version range:*)
| | +- certifi(install version:2020.4.5.1 version range:>=2017.4.17)
| | +- chardet(install version:3.0.4 version range:>=3.0.2,<4)
| | +- idna(install version:2.9 version range:>=2.5,<3)
| | +- urllib3(install version:1.25.9 version range:>=1.21.1,<1.26)
| +- shortuuid(install version:1.0.1 version range:*)
| +- sparqlwrapper(install version:1.8.5 version range:*)

Thanks for your help. Best, Neolith

NeolithEra commented 4 years ago

Solution

  1. Loosen the version range of rdflib to be >=4.2.1.
  2. Remove your direct dependency rdflib, and use the rdflib transitively introduced by rdflib-jsonld. Which solution do you prefer, 1 or 2? Please let me know your choice. May I pull a request to solve this issue?