bmcfee / crema

convolutional and recurrent estimators for music analysis
BSD 2-Clause "Simplified" License
84 stars 22 forks source link

Installation fails due to conflicting librosa version #21

Closed NeolithEra closed 5 years ago

NeolithEra commented 5 years ago

Hi, users are unable to run crema due to dependency conflict with librosa package.

As shown in the following full dependency graph of crema, crema requires librosa==0.5,while pumpp requires librosa>=0.6.2.

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

Dependency tree

crema<version range:>
| +-h5py<version range:>=2.7>
| +-jams<version range:>=0.2.2>
| | +-decorator<version range:>
| | +-jsonschema<version range:==2.6>
| | +-mir-eval<version range:>=0.5>
| | | +-future<version range:>
| | | +-numpy<version range:>=1.7.0>
| | | +-scipy<version range:>=1.0.0>
| | | +-six<version range:>
| | +-numpy<version range:>=1.8.0>
| | +-pandas<version range:>
| | +-six<version range:>
| | +-sortedcontainers<version range:>=2.0.0>
| +-keras<version range:>=2.0>
| +-librosa<version range:==0.5>
| | +-audioread<version range:>=2.0.0>
| | +-decorator<version range:>=3.0.0>
| | +-joblib<version range:>=0.7.0>
| | +-numpy<version range:>=1.8.0>
| | +-resampy<version range:>=0.1.2>
| | | +-cython<version range:>=0.23>
| | | +-numpy<version range:>=1.10>
| | | +-scipy<version range:>=0.13>
| | | +-six<version range:>=1.3>
| | +-scikit-learn<version range:>=0.14.0>
| | +-scipy<version range:>=0.13.0>
| | +-six<version range:>=1.3>
| +-mir-eval<version range:>=0.4>
| | +-future<version range:>
| | +-numpy<version range:>=1.7.0>
| | +-scipy<version range:>=1.0.0>
| | +-six<version range:>
| +-pumpp<version range:>=0.3.2>
| | +-jams<version range:>=0.3>
| | | +-decorator<version range:>
| | | +-jsonschema<version range:==2.6>
| | | +-mir-eval<version range:>=0.5>
| | | | +-future<version range:>
| | | | +-numpy<version range:>=1.7.0>
| | | | +-scipy<version range:>=1.0.0>
| | | | +-six<version range:>
| | | +-numpy<version range:>=1.8.0>
| | | +-pandas<version range:>
| | | +-six<version range:>
| | | +-sortedcontainers<version range:>=2.0.0>
| | +-librosa<version range:>=0.6.2>
| | | +-audioread<version range:>=2.0.0>
| | | +-decorator<version range:>=3.0.0>
| | | +-joblib<version range:>=0.12>
| | | +-numba<version range:>=0.38.0>
| | | +-numpy<version range:>=1.8.0>
| | | +-resampy<version range:>=0.2.0>
| | | | +-numba<version range:>=0.32>
| | | | +-numpy<version range:>=1.10>
| | | | +-scipy<version range:>=0.13>
| | | | +-six<version range:>=1.3>
| | | +-scikit-learn<version range:>=0.14.0>
| | | +-scipy<version range:>=1.0.0>
| | | +-six<version range:>=1.3>
| | +-mir-eval<version range:>=0.5>
| | | +-future<version range:>
| | | +-numpy<version range:>=1.7.0>
| | | +-scipy<version range:>=1.0.0>
| | | +-six<version range:>
| | +-scikit-learn<version range:>=0.20>
| | +-six<version range:>
| +-scikit-learn<version range:>=0.18>
| +-six<version range:>
| +-tensorflow<version range:>=1.0>

Thanks for your help. Best, Neolith

NeolithEra commented 5 years ago

Solution

  1. Fix your direct dependency to be librosa>=0.5. I have checked this revision will not affect your downstream projects now.

  2. Fix your direct dependency to be pumpp==0.3.2. As pumpp 0.3.2 depends on librosa>=0.5, which will not cause conflicts in your project.

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

bmcfee commented 5 years ago

Ah thanks for nothing that. I'm planning to do an update, but haven't gotten to it yet. Solution 1 should be fine though.

NeolithEra commented 5 years ago

Thank for your attention. This issue has been fixed by commit 5ace5222, please update it in PYPI.