我正在使用python 3,我有一个名为"http" (mypackage.http)
的模块,我有另一个名为foo的模块,我想加载内置的http module
(不是我的mypackage.http
}模块)
我可以用
imp.find_module('http', sys.path[1:])
获取内置__ init__.py importlib path
示例:
/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/importlib/__ init__.py
但不推荐使用imp.find_module()/ load_module()。
如何通过http module
等其他方式导入此内置importlib
?
项目示例:
谢谢!
答案 0 :(得分:1)
只需使用
import http
在Python 2中,如果foo
位于mypackage
,则不会有效,但相对导入需要在Python 3中明确。
如果您将模块作为脚本运行,则需要以某种方式修复路径。如果使用常规导入机制可以找到mypackage
,那么您可以使用-m
开关运行模块:
python -m mypackage.foo
否则,您可能需要检查路径并手动更改它,以及设置__package__
以便相对导入正常工作。