【发布时间】:2019-09-04 03:44:23
【问题描述】:
我正在尝试制作 python 模块,该模块在导入时的行为与另一个模块完全相同。
python>
import foo
import fake_foo
help(foo) == help(fake_foo)
我需要这个,因为我需要在我的 fake_foo 模块中添加一些额外的代码 mafic 代码,它可以从另一个位置动态加载真正的模块。
如果不清楚下面的代码是否不出于明显的原因不起作用:load_source 确实返回了模块,但它不能告诉 python 将其加载到当前模块。
# fake_foo/__init__.py
import imp
imp.load_source('foo', '/path/to/foo')
一个非常重要的要求是我无法控制人们如何导入fake_foo,我无法修改执行导入的代码,我需要在假模块内完成整个实现。
PS。我将需要适用于 py27、py35+ 的代码,这很可能 这将需要不同的逻辑,但一旦我让它适用于一个版本,应该不会太难为其他版本找到类似的方法。
【问题讨论】:
标签: python python-import python-module