如何在 python 中导入修改后的 class?

How to import a modified class in python?

我在我的项目中使用了 scikit-learn 库,由于各种原因我不得不修改库中的一些 类。 特别是这些 类 被我用于分类目的的算法调用。 所以在示例中我的代码中有:

from sklearn.linear_model import SGDClassifier

现在我想在我的代码中导入这些修改过的 类,scikit-learn 库保持不变并且当算法被调用时它使用我的 类(这显然是在一个单独的文件夹中)而不是原来的。 这样做的正确方法是什么? 提前致谢

您导入的模块基本上只是 python 文件本身 (*.py)。 Python 知道去哪里找他们。例如。 Sklearn 可能安装在包文件夹中。 Python 还将在当前脚本所在的文件夹中查找它 运行。

您可以复制 class 的代码,按照您的意愿进行操作,然后将其保存到项目文件夹中的新 .py 文件中。如果你命名那个 python-file myNewClasses.py 和新的 class My_SGDClassifier 你可以像

from myNewClasses import My_SGFClassifier

这样你就不会干扰原始的 sklearn-class。您还可以在 file/module 中包含多个 classes、函数或任何您喜欢的内容,并相应地导入它们。

如果我必须做这样的事情,我肯定会使用 virtualenv

  1. 使用virtualenv myProject创建您的虚拟环境
  2. cd myProject 并输入 bin/activate
  3. 您可以 pip install sklearn 和 rebuild/modify 或将修改后的 sklearn 复制到 myProject/lib/python2.7
  4. 只需导入并使用即可。

请注意,您的虚拟环境包将与您的计算机环境完全分离