【问题标题】:Load custom library instead of standard library加载自定义库而不是标准库
【发布时间】:2013-11-18 22:45:40
【问题描述】:

我正在使用 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

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

【问题讨论】:

标签: python import


【解决方案1】:
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    import customsklearn as sklearn
    

    如果没有找到,您可以将拥有它的目录添加到PYTHONPATHsys.path。这当然会迫使您更改您所在目录的名称,以避免名称冲突。希望这在您的环境中是可以接受的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-01
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多