2016-04-22 11 views
5

Ich benutze Python 2.7.11 unter Anaconda 2.0.0 (x86_64) auf einem MacBook.Matplotlib/Abhängigkeit Abhängigkeit Hölle in Anaconda reparieren

Vor einigen Wochen, als Teil eines Prozesses, um OpenCV arbeiten zu lassen, habe ich numpy von wo immer es war (leider/dummerweise habe ich keine Aufzeichnung) auf 1.7.1 heruntergestuft. Ich glaube mich daran zu erinnern, dass dies notwendig war, und ich möchte nicht, dass OpenCV aufhört zu arbeiten, also bin ich mir ziemlich sicher, dass ich jetzt numpy verlassen sollte, wo es ist.

Allerdings habe ich heute festgestellt, dass dies meine matplotlib/pylab gebrochen hat. Als ich import pylab bekomme ich folgendes:

--------------------------------------------------------------------------- 
RuntimeError        Traceback (most recent call last) 
RuntimeError: module compiled against API version 9 but this version of numpy is 7 
--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last)  
... 
... 
ImportError: numpy.core.multiarray failed to import 

Meine Frage ist also: Wie installiere ich (oder Rollback auf) eine Version von matplotlib, die mit meinem vorhandenen numpy kompatibel ist, ohne stören meine bestehende numpy?

Hier ist, wo ich bisher habe: basierend auf ähnlichen conda Fragen auf SO, sah ich am Ausgang des conda list --revisions matplotlib beinhaltet:

... 
2016-03-28 17:16:36 (rev 6) 
    conda {3.8.3 -> 4.0.5} 
    conda-env {2.0.1 -> 2.4.5} 
    numpy {1.8.1 -> 1.7.1} 
    ... 

Nun ist dieses Ich bin mir nicht sicher, wie zu interpretieren, sondern gegeben die numpy Versionsnummer sieht aus, als ob sie tatsächlich im Gegensatz zu all den anderen Einträge hier, das klingt für mich wie ein vielversprechender, "im März 2016 matplotlib erkannte, dass es auf eine frühere Version seiner numpy Abhängigkeit zurückfallen könnte". Allerdings, wenn ich bitten für diese Revision:

conda install --revision=6 matplotlib 

mir gesagt ich es schon haben, und dass die Abhängigkeit ist numpy 1,8:

Fetching package metadata: .... 

# All requested packages already installed. 
# packages in environment at /Users/jez/anaconda: 
# 
matplotlib    1.3.1    np18py27_1 <unknown> 

Also von hier Ich bin nicht sicher, wie man Vorgehen. Ich habe vorläufig mit einigen Variationen auf conda install matplotlib gespielt, aber es will eindeutig mit meiner numpy zur gleichen Zeit, also habe ich nie y gedrückt. Ebenso klar, ich bin aus meiner Tiefe in conda, so würde ich wirklich Ihre Hilfe zu schätzen wissen.

Antwort

6

Sie können die genauen Versionen beliebiger Bibliotheken im Befehl conda install angeben. Zum Beispiel:

$ conda install numpy=1.7.1 matplotlib=1.3 

Wenn die Versionen nicht kompatibel sind, geben Sie den Befehl ein Fehler Angabe genau das, was die Unvereinbarkeit ist.

+0

Danke-das ist es! Was für mich funktionierte war, die Version der 'numpy' Abhängigkeit anzugeben, aber die' matplotlib' Version nicht anzugeben. "Conda" fand dann heraus und meldete die folgende Änderung: 'matplotlib: 1.3.1-np18py27_1 -> 1.3.1-np17py27_0' – jez