divio / aldryn-search

Haystack 2.0 search index for django CMS
Other
48 stars 77 forks source link

Installation fails due to conflicting django version #101

Open NeolithEra opened 5 years ago

NeolithEra commented 5 years ago

Hi, users are unable to run aldryn-search due to dependency conflict with django package. As shown in the following full dependency graph of aldryn-search, django-appconf requires django,while django-cms requires django>=1.11,<2.2.

According to pip’s “first found wins” installation strategy, django 2.2.4 is the actually installed version. However, django 2.2.4 does not satisfy django>=1.11,<2.2.

Dependency tree

aldryn-search-master
| +-aldryn-common(version range:>=1.0.2)
| | +-aldryn-boilerplates(version range:*)
| | | +-django(version range:>=1.11)
| | | +-django-appconf(version range:*)
| | | | +-django(version range:*)
| | | | +-six(version range:*)
| | | +-yurl(version range:>=0.13)
| | +-django-sortedm2m(version range:*)
| | +-six(version range:*)
| +-django-appconf(version range:*)
| | +-django(version range:*)
| | +-six(version range:*)
| +-django-cms(version range:>=3.4.5)
| | +-django(version range:>=1.11,<2.2)
| | +-django-classy-tags(version range:>=0.7.2)
| | | +-django(version range:>=1.11)
| | +-django-formtools(version range:>=2.1)
| | | +-django(version range:>=1.8)
| | +-django-sekizai(version range:>=0.7)
| | | +-django(version range:>=1.11)
| | | +-django-classy-tags(version range:>=0.3.1)
| | | | +-django(version range:>=1.11)
| | +-django-treebeard(version range:>=4.3)
| | +-djangocms-admin-style(version range:>=1.2)
| +-django-haystack(version range:>=2.0.0)
| | +-django(version range:>=1.11)
| +-django-spurl(version range:*)
| | +-six(version range:*)
| | +-urlobject(version range:>=2.4.0)
| +-django-standard-form(version range:*)
| | +-django(version range:>=1.3)
| | +-django-classy-tags(version range:>=0.3.3)
| | | +-django(version range:>=1.11)
| +-lxml(version range:*)
| +-setuptools(version range:*)

Thanks for your help. Best, Neolith

NeolithEra commented 5 years ago

Solution

  1. Add django>=1.11,<2.2 into requirement file as a direct dependency of aldryn-search.

  2. Reverse the declaration order of django-appconf and django-cms in requirement file to allow django-cms to be installed first. Then this conflict can be removed.

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

benzkji commented 5 years ago

I'm using pip-tools, and installation works? When does this happen?

NeolithEra commented 5 years ago

@benzkji Hi, maybe your local dev environment is not clean (not working on a virtual environment).

When I work in an isolated virtual environment, I got the following errors: 1111122222