pyGenealogical-Tools icon indicating copy to clipboard operation
pyGenealogical-Tools copied to clipboard

Installation fails due to conflicting python-dateutil version

Open NeolithEra opened this issue 5 years ago • 5 comments

Hi, users are unable to run pygenealogicaltools due to dependency conflict with python-dateutil package. As shown in the following full dependency graph of pygenealogicaltools, mapbox requires _ python-dateutil >=2.5.0_,while botocore requires python-dateutil <2.8.1,>=2.1.

According to pip’s “first found wins” installation strategy, python-dateutil 2.8.1 is the actually installed version. However, python-dateutil 2.8.1 does not satisfy <2.8.1,>=2.1.

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

pygenealogicaltools - 0.4.0
| +- langdetect(install version:1.0.7 version range:*)
| +- mapbox(install version:0.18.0 version range:*)
| | +- boto3(install version:1.10.39 version range:>=1.4)
| | | +- botocore(install version:1.13.39 version range:>=1.13.39,<1.14.0)
| | | | +-python-dateutil(install version:2.8.0 version range:<2.8.1,>=2.1)
| | | +- jmespath(install version:0.7.0 version range:>=0.7.1,<1.0.0)
| | | +- s3transfer(install version:0.2.1 version range:>=0.2.0,<0.3.0)
| | +- cachecontrol(install version:0.12.5 version range:*)
| | | +-msgpack(install version:0.6.2 version range:*)
| | +- iso3166(install version:1.0.1 version range:*)
| | +- polyline(install version:1.4.0 version range:>=1.3.1)
| | | +- six(install version:1.13.0 version range:>=1.8.0)
| | +- python-dateutil(install version:2.8.1 version range:>=2.5.0)
| | +- requests(install version:2.22.0 version range:*)
| | | +- certifi(install version:2019.11.28 version range:>=2017.4.17)
| | | +- chardet(install version:3.0.4 version range:<3.1.0,>=3.0.2)
| | | +- idna(install version:2.8 version range:>=2.5,<2.9)
| | | +- urllib3(install version:1.25.7 version range:<1.26,>=1.21.1)
| | +- uritemplate(install version:3.0.0 version range:>=2.0)
| +- metaphone(install version:0.6 version range:*)
| +- geotext(install version:0.4.0 version range:*)
| +- openpyxl(install version:3.0.2 version range:*)
| +- pyexcel(install version:0.5.15 version range:*)
| | +- lml(install version:0.0.9 version range:>=0.0.4)
| | +- pyexcel-io(install version:0.5.20 version range:>=0.5.19)
| | | +- lml(install version:0.0.9 version range:>=0.0.4)
| +- pyexcel-xls(install version:0.5.8 version range:*)
| | +- pyexcel-io(install version:0.5.20 version range:>=0.5.3)
| | | +- lml(install version:0.0.9 version range:>=0.0.4)
| | +- xlrd(install version:1.2.0 version range:*)
| | +- xlwt(install version:1.3.0 version range:*)
| | | +- coveralls(install version:1.9.2 version range:*)
| | | +- nose(install version:1.3.7 version range:*)
| | | +- nose-cov(install version:1.6 version range:*)
| | | +- nose-fixes(install version:1.3 version range:*)
| | | | +- nose(install version:1.3.7 version range:*)
| | | | +- setuptools(install version:42.0.2 version range:*)
| | | +- panci(install version:0.0.2 version range:*)
| | | | +- pyyaml(install version:5.2 version range:*)
| | | +- pkginfo(install version:1.5.0.1 version range:*)
| | | +- setuptools-git(install version:1.2 version range:*)
| | | +- six(install version:1.13.0 version range:*)
| | | +- sphinx(install version:2.2.2 version range:*)
| | | +- tox(install version:3.14.2 version range:*)
| | | +- twine(install version:3.1.1 version range:*)
| | | +- wheel(install version:0.33.6 version range:*)
| +- pyexcel-xlsx(install version:0.5.7 version range:*)
| | +- openpyxl(install version:2.5.14 version range:>=2.5.0,<2.6.0)
| | | +- et-xmlfile(install version:1.0.1 version range:*)
| | | | +- python(install version:2.5 version range:>=2.6.0)
| | | +- jdcal(install version:1.4.1 version range:*)
| | +- pyexcel-io(install version:0.5.20 version range:>=0.5.3)
| | | +- lml(install version:0.0.9 version range:>=0.0.4)
| +- python-levenshtein(install version:0.12.0 version range:*)
| | +- setuptools(install version:42.0.2 version range:*)
| +- requests(install version:2.22.0 version range:*)
| | +- certifi(install version:2019.11.28 version range:>=2017.4.17)
| | +- chardet(install version:3.0.4 version range:<3.1.0,>=3.0.2)
| | +- idna(install version:2.8 version range:>=2.5,<2.9)
| | +- urllib3(install version:1.25.7 version range:<1.26,>=1.21.1)

Thanks for your help. Best, Neolith

NeolithEra avatar Dec 16 '19 03:12 NeolithEra

Suggested Solution

  1. Ask your upstream project mapbox to fix his direct dependency to be python-dateutil <2.8.1,>=2.5.0. I have checked this revision will not affect your downstream projects now.
  2. Ask your upstream project botocore to loose the version range of python-dateutil.

@Thimxx Which solution do you prefer, 1 or 2? Please let me know your choice. I can submit a PR to solve this issue.

NeolithEra avatar Dec 16 '19 03:12 NeolithEra

Interesting.... in fact, it should fail the installation of mapbox itself, isn't it? I have been able to install it. Just noticed you have made the suggestion already. It looks mapbox is no longer maintained... I might need to change the library is no response.

Keep this link as tracking https://github.com/mapbox/mapbox-sdk-py/issues/276

Thimxx avatar Dec 20 '19 15:12 Thimxx

Which version of python are you using? Just checked and ideally the low level botocore should be compatible with <3.0.0 dateutils

https://github.com/boto/botocore/blob/develop/setup.py

Thimxx avatar Dec 20 '19 15:12 Thimxx

Version 2.8.1 of python-dateutil was created one month ago, likely this is the problem, dependencies look not to be updated.

Fixed in version 0.4.2, I introduced the dependencies, but in parallel I am trying to work to free the dependencies in the other packages... I would prefer to have more flexibility. So I keep the issue open until that is fixed.Now is accessible through pip

Thimxx avatar Dec 23 '19 01:12 Thimxx

The mapbox development is paused. To be carefully looked as we might have an obsolescence of code.

Thimxx avatar Jul 12 '20 12:07 Thimxx