我在项目scikit-learn库中使用了,由于各种原因,我必须修改库中的某些类。特别是这些类是由我用于分类目的的算法调用的。因此,例如我在代码中有:
from sklearn.linear_model import SGDClassifier
现在,我想在我的代码中导入这些修改的类,以Scikit-Learn库保持不变,当算法称为算法时,它使用我的类(显然是在单独的文件夹中)而不是原始的类。正确的方法是什么?预先感谢
您导入的模块本身只是python-files(*.py)。Python知道在哪里寻找它们。例如。可以将Sklearn安装到包装折叠器中。Python还将在运行当前脚本的文件夹中寻找它。
您可以复制该类别的代码,操纵您的期望,然后将其保存到项目文件夹中的新.PY文件中。如果您命名为Python-File myNewClasses.py
和新类My_SGDClassifier
,则可以像
from myNewClasses import My_SGFClassifier
这样,您就不会干扰原始的Sklearn-Class。您还可以在该文件/模块中使用几个类,功能或任何您喜欢的内容。
如果我必须做这样的事情,我肯定会使用virtualenv
:
- 使用
virtualenv myProject
创建您的虚拟环境 -
cd myProject
并输入bin/activate
- 您可以
pip install
Sklearn并重建/修改或将修改后的Sklearn复制到myProject/lib/python2.7
- 只是导入并使用它。
请注意,您的虚拟env软件包将与计算机环境完全分开