unsonic icon indicating copy to clipboard operation
unsonic copied to clipboard

Installation fails due to conflicting pastedeploy version

Open NeolithEra opened this issue 5 years ago • 3 comments

Hi, users are unable to run Unsonic due to dependency conflict with pastedeploy package. As shown in the following full dependency graph of Unsonic, Unsonic requires pastedeploy==1.5.2,while plaster-pastedeploy * requires pastedeploy>=2.0.

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

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

unsonic - 0.1.3
| +- alembic(install version:0.9.7 version range:==0.9.7)
| | +- mako(install version:1.1.2 version range:*)
| | | +- MarkupSafe(install version:2.0.0a1 version range:>=0.9.2)
| | +- python-dateutil(install version:2.8.1 version range:*)
| | +- python-editor(install version:1.0.4 version range:>=0.3)
| | +- sqlalchemy(install version:1.2.2 version range:>=0.7.6)
| +- mishmash(install version:0.3b5 version range:==0.3b5)
| +- paste(install version:2.0.3 version range:==2.0.3)
| | +- six(install version:1.14.0 version range:>=1.4.0)
| +- pastedeploy(install version:1.5.2 version range:==1.5.2)
| +- psycopg2(install version:2.7.3.2 version range:==2.7.3.2)
| +- pyramid(install version:1.9.1 version range:==1.9.1)
| +- pyramid-debugtoolbar(install version:4.3 version range:==4.3)
| | +- pygments(install version:2.6.1 version range:*)
| | +- pyramid(install version:1.9.1 version range:>=1.4)
| | +- pyramid-mako(install version:1.1.0 version range:>=0.3.1)
| | | +- Mako(install version:1.1.2 version range:>=1.1.0)
| | | | +- MarkupSafe(install version:2.0.0a1 version range:>=0.9.2)
| | | +- pyramid(install version:1.9.1 version range:*)
| | +- repoze-lru(install version:0.7 version range:*)
| +- pyramid-tm(install version:2.2 version range:==2.2)
| | +- pyramid (install version:1.10.4 version range:>=1.5)
| | | +- hupper(install version:1.10.2 version range:>=1.5)
| | | +- plaster(install version:1.0 version range:*)
| | | | +- setuptools(install version:46.1.3 version range:*)
| | | +- plaster-pastedeploy(install version:0.7 version range:*)
| | | | +- pastedeploy(install version:2.1.0 version range:>=2.0)
| | | | +- plaster(install version:1.0 version range:>=0.5)
| | | +- setuptools(install version:46.1.3 version range:*)
| | | +- translationstring(install version:1.3 version range:>=0.4)
| | | +- venusian(install version:3.0.0 version range:>=1.0)
| | | +- webob(install version:1.8.6 version range:>=1.8.3)
| | | +- zope-deprecation(install version:4.4.0 version range:>=3.5.0)
| | | | +- setuptools(install version:46.1.3 version range:*)
| | | +- zope-interface(install version:5.1.0 version range:>=3.8.0)
| | +- transaction (install version:3.0.0 version range:>=2.0)
| | | +- zope.interface(install version:5.1.0 version range:*)
| +- recommonmark(install version:0.4.0 version range:==0.4.0)
| | +- commonmark(install version:0.5.4 version range:<=0.5.4)
| | +- docutils(install version:0.16 version range:>=0.11)
| +- sphinx(install version:1.6.6 version range:==1.6.6)
| +- sqlalchemy(install version:1.2.2 version range:==1.2.2)
| +- transaction(install version:2.1.2 version range:==2.1.2)
| | +- zope-interface(install version:5.1.0 version range:*)
| +- waitress(install version:1.1.0 version range:==1.1.0)
| +- xmltodict(install version:0.11.0 version range:==0.11.0)
| +- zope-sqlalchemy(install version:0.7.7 version range:==0.7.7)
| | +- setuptools(install version:46.1.3 version range:*)
| | +- sqlalchemy(install version:1.2.2 version range:>=0.5.1)
| | +- transaction(install version:2.1.2 version range:*)
| | | +- zope-interface(install version:5.1.0 version range:*)
| | +- zope-interface(install version:5.1.0 version range:>=3.6.0)

Thanks for your help. Best, Neolith

NeolithEra avatar May 29 '20 09:05 NeolithEra

Solution

  1. Loosen the version range of pastedeploy to be >=2.0.
  2. Remove your direct dependency pastedeploy, and use the pastedeploy transitively introduced by plaster-pastedeploy.
  3. Ask your direct dependency plaster-pastedeploy to loosen the version range of pastedeploy to be ==1.5.2. @redshodan Which solution do you prefer, 1 ,2 or 3? Please let me know your choice. May I pull a request to solve this issue?

NeolithEra avatar May 29 '20 09:05 NeolithEra

@nicfit,Could you help me review this issue? Thx :p

NeolithEra avatar Jun 22 '20 08:06 NeolithEra

@NeolithEra I'm just seeing this now. An install of the current requirements.txt files works with pip 20.3.3, and results in:

$ pip list | grep -i paste
Paste                         3.5.0
PasteDeploy                   2.1.1
plaster-pastedeploy           0.7

Is this still an issue for you?

nicfit avatar Dec 16 '20 16:12 nicfit