如何在 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
:
- 使用
virtualenv myProject
创建您的虚拟环境
cd myProject
并输入 bin/activate
- 您可以
pip install
sklearn 和 rebuild/modify 或将修改后的 sklearn 复制到 myProject/lib/python2.7
- 只需导入并使用即可。
请注意,您的虚拟环境包将与您的计算机环境完全分离
我在我的项目中使用了 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
:
- 使用
virtualenv myProject
创建您的虚拟环境 cd myProject
并输入bin/activate
- 您可以
pip install
sklearn 和 rebuild/modify 或将修改后的 sklearn 复制到myProject/lib/python2.7
- 只需导入并使用即可。
请注意,您的虚拟环境包将与您的计算机环境完全分离