加载自定义库而不是标准库

时间:2013-11-18 22:45:40

标签: python import

我正在使用scikit-learn库,想要玩代码。如何调用自定义库而不是标准库?这里mycode.py是main函数,它从sklearn调用函数(我想修改sklearn函数)

这是我的代码结构

mycode.py
scikit-learn\
    benchmarks\
    sklearn\
    etc

我试过mycode.py:

from scikit-learn import sklearn

不起作用,因为scikit-learn是无效的Python模块名称。我无法更改存储库名称,因为它会破坏所有sklearn测试。 我也试过

import os, sys
CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.dirname(CURRENT_DIR+"/scikit-learn"))
import sklearn

但它一直在导入标准库。如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

不要将目录附加到sys.path end ,而是将其插入开头。这将导致Python在尝试稍后出现的条目(包括包含stdlib的标准位置)之前搜索包和模块。

请注意,这只会覆盖之前未导入的外部模块。

答案 2 :(得分:0)

如何为自定义模块提供完全不同的名称(让我们称之为customslkearn),然后:

import customsklearn as sklearn

如果找不到,您可以将目录中的目录添加到PYTHONPATHsys.path。这当然会强制您更改其所在目录的名称,以避免名称冲突。希望你的环境能够接受。