我似乎无法在 python 中使用绝对导入。这是我的文件结构:
a/
b/
__init__.py
__init__.py
foo.py
foo.py:
# Including or removing the __future__ import has no effect
from __future__ import absolute_import
from a import b # just `import b` works fine
print "success!"
我反而得到:
ImportError: No module named a
这里到底发生了什么?我觉得我缺少一些基本的东西。虽然这个示例很简单,但我需要绝对导入才能用于实际项目,因此仅用相对导入替换导入并不是一种选择。我正在使用 python 2.7.13
未列出任何解决方案here help
预先感谢您的任何见解!
由于它没有显示,我必须假设你正在运行python a/foo.py
,这将放置脚本的目录('a'
)开始时sys.path
当实际上您希望当前目录位于开头时sys.path
.
你应该运行python -m a.foo
这将正确初始化sys.path
您的项目结构的根源。
Here's 更深入的写作我在其他方面写过同样的问题可能会变得梨形。
此外,我还录制了一个关于该主题的视频:别跑python my/script.py!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)