2016-09-12 1 views
0

J'ai besoin de lancer mon script python sous sklearn v0.17 et sur le serveur sur lequel ils ont sklearn v0.15.Comment puis-je importer une version différente d'un module python?

J'ai donc téléchargé le paquet scikit-learn-0.17 en /home/mydir/lib/python2.7/site-packages/ et j'ai installé le paquet.

Cependant quand je suis allé à d'autres répertoires et ai essayé d'exécuter python et import sklearn la version est toujours 0.15.

J'ai créé ~/.startup.py et mettre le code suivant

import sys 
sys.path.insert(0,"/home/mydir/lib/Python2.7/site-packages/") 

alors je l'ai souligné à ~/.startup.py dans ~/.bashrc avec

PYTHONSTARTUP=~/.startup.py 

Mais il ne vous aide pas.

Je me demande comment résoudre ce problème. Je vous remercie!

Les fichiers/répertoires suivants sont site-packages/

easy-install.pth    scikit-learn-0.17   site.pyc 
pysam-0.9.1.4     scikit_learn-0.17-py2.7.egg-info site.pyo 
pysam-0.9.1.4-py2.7-linux-x86_64.egg site.py    sklearn 
+0

Pourriez-vous s'il vous plaît poster le contenu de votre dossier site-packages? – crey4fun

+0

@ crey4fun Je les ai ajoutés dans la question. – RLFT

+0

Pouvez-vous désinstaller scikit-learn à nouveau, puis exécutez cette ligne de code: 'pip install -U scikit-learn' – crey4fun

Répondre

0

Python environnements virtuels ont été faits pour résoudre ce problème. Créez un environnement virtuel en accédant au répertoire de votre projet et entrez la commande pyvenv ./Env. Activer l'environnement sur un système Linux avec source ./Env/bin/activate. Maintenant que vous avez un environnement python en mode bac à sable, quel que soit le paquet que vous installez maintenant, il ne sera étendu qu'à cet environnement. Donc vous pouvez pip install scikit-learn-0.17 que vous pointer seulement vers QUE paquet. Tous les autres packages qui ne sont pas dans cet environnement virtuel sont ignorés sauf si vous les ajoutez explicitement via des méthodes telles que pip.

Il y a beaucoup d'autres avantages à l'environnement virtuel, la lecture de haut recommandation plus à leur sujet here.