2017-09-18 7 views
1

J'ai utilisé dans ma bibliothèque de projets scikit-learn et pour diverses raisons j'ai dû modifier certaines classes à l'intérieur de la bibliothèque. En particulier, ces classes sont appelées par les algorithmes que j'ai utilisés à des fins de classification. Ainsi dans l'exemple que j'ai dans mon code:Comment importer une classe modifiée en python?

from sklearn.linear_model import SGDClassifier 

Maintenant, je veux importer dans mon code ces classes modifiées, de manière que la bibliothèque scikit-learn reste le même et lorsque l'algorithme est appelé utilise mes classes (qui sont évidemment dans un dossier séparé) au lieu des originaux. Quelle est la bonne façon de faire cela? Merci d'avance

Répondre

1

Les modules que vous importez sont essentiellement des fichiers python eux-mêmes (* .py). Python sait où les chercher. Par exemple. Sklearn pourrait être installé dans le dossier-paquet. Python va également le chercher dans le dossier à partir duquel votre script actuel est exécuté.

Vous pouvez copier le code de cette classe, manipuler comme vous le souhaitez, puis l'enregistrer dans un nouveau fichier .py dans votre dossier de projet. Si vous nommez que python fichier myNewClasses.py et la nouvelle classe My_SGDClassifier vous pouvez aller comme

from myNewClasses import My_SGFClassifier 

De cette façon, vous n'INTERFER avec le sklearn-classe d'origine. Vous pouvez également avoir plusieurs classes, fonctions ou tout ce que vous voulez dans ce fichier/module et les importer en conséquence.

0

Si je devais faire quelque chose comme cela, j'utiliser virtualenv sûre:

  1. Utilisez virtualenv myProject pour créer votre environnement virtuel
  2. cd myProject et entrez bin/activate
  3. Vous pouvez pip install sklearn et reconstruire/Modify ou copiez votre sklearn modifié sur myProject/lib/python2.7
  4. Il vous suffit de l'importer et de l'utiliser.

Notez que vos paquets env virtuels seront séparés de votre environnement completly informatique