Ich habe EPD 7.3.1 installiert (heutzutage Enthought Canopy genannt), welches mit scikit-learn v 0.11 geliefert wird. Ich benutze Ubuntu 12.04. Ich muss v 0.12 von scikit-learn installieren.
Der scikit-learn Dokument sagt klicke das Repository, füge das scikit-learn hinzu Verzeichnis zu Ihrem PYTHONPATH, und erstellen Sie die Erweiterung an Ort und Stelle: python setup.py build_ext --inplace
Das Problem ist, dass EPD eine eigene geschlossene Welt ist (mit mehreren Scikit-Verzeichnissen):
./lib/python2.7/site-packages/scikits/
./lib/python2.7/site-packages/sklearn
Und dann gibt es:
./EGG-INFO/scikit_learn/
Ich möchte wirklich nicht experimentieren, da es sehr lange gedauert hat, um die Dinge auf diesen Punkt abzustimmen. Soll ich in diesem Fall den Anweisungen von scikit-learn folgen?
Die auf der scikit-learn-Website beschriebenen Aktionen funktionieren unabhängig von der scikit-learn-Version in EPD. Python verwendet automatisch die in der Umgebungsvariable PYTHONPATH
festgelegte scikit-learn-Version, die Sie auf den Verzeichnispfad setzen sollten der Git-Version von Scikit-lernen.
Wenn Sie Bash auf einem Unix-ähnlichen System verwenden, sollten Sie Folgendes tun:
/home/yourname/bin/scikit-learn
) .bashrc
und füge die Zeile hinzu: export PYTHONPATH="/home/yourname/bin/scikit-learn";
python
eingeben.
import sklearn
sklearn.__verion__
Dies sollte jetzt '0.12-git'
anstelle von 0.11
anzeigen
Warum funktioniert das? Python verwendet intern die Variable sys.path
(a list
of paths), um alle Verzeichnisse zu verfolgen, in denen nach Modulen und Paketen gesucht werden soll. Sobald ein Modul oder ein Paket angefordert wird, durchsucht Python diese Liste der Reihe nach, bis es eine Übereinstimmung gefunden hat. So kann z. B. ein Modul in sys.path
mehrfach aufgeführt werden, aber nur die Version, die zuerst in der Liste angezeigt wurde, wird verwendet.
Für jede Python-Installation wird ein eigener Standardsatz von Pfaden in sys.path
aufgeführt. Eine Möglichkeit, sys.path
zu erweitern, besteht darin, Pfade in PYTHONPATH
aufzulisten. Sobald Python startet, liest es diese Umgebungsvariable und fügt sie zum Anfang der sys.path
-Liste hinzu. Wenn Sie also den Pfad zu einer anderen Version von scikit-learn zu Ihrem PYTHONPATH
hinzufügen, dann wird (EPDs) Python diese Version von scikit-learn zuerst finden und sie anstelle der weiter unten in sys.path
aufgeführten Version verwenden.
Um sys.path
anzuzeigen, einfach import sys
und dann print sys.path
. Wenn Sie beispielsweise nur die 0.12-Version von scikit-learn in einem Python-Programm verwenden und die 0.11-Version als Standard in allen anderen Python-Programmen verwenden möchten, können Sie PYTHONPATH
leer lassen und nur den Pfad zu scikit-learn einfügen. Lerne 0.12 manuell oben in deinem Code:
Tags und Links python scikit-learn enthought pythonpath canopy