2017-09-18 13 views
1

我用於我的項目scikit學習庫,由於各種原因,我不得不修改庫中的一些類。 特別是這些類被我用於分類目的的算法調用。 所以例如我有我的代碼:如何在Python中導入修改後的類?

from sklearn.linear_model import SGDClassifier 

現在我想在我的代碼導入這些修改過的類,在某種程度上scikit學習庫保持不變,當算法被稱爲它使用我的班(顯然是在一個單獨的文件夾),而不是原來的。 什麼是正確的方法來做到這一點? 在此先感謝

回答

1

您導入的模塊基本上只是python文件(* .py)。 Python知道在哪裏尋找它們。例如。 Sklearn可能被安裝到包文件夾中。 Python也會在當前腳本運行的文件夾中查找它。

您可以複製該類的代碼,操作您希望的方式,然後將其保存到項目文件夾中的新.py文件。如果名稱中的python-文件myNewClasses.py和新類My_SGDClassifier你可以去喜歡

from myNewClasses import My_SGFClassifier 

這樣,你不與原來的sklearn級地干擾。您也可以在該文件/模塊中包含多個類,函數或任何您喜歡的內容,並相應地導入它們。

0

如果我不得不做這樣的事我會用virtualenv肯定的:

  1. 使用virtualenv myProject創建虛擬環境
  2. cd myProject並進入bin/activate
  3. 您可以pip install sklearn和重建/修改或將您的修改sklearn複製到myProject/lib/python2.7
  4. 只需導入並使用它。

請注意,您的虛擬環境包將完全與您的計算機環境分開