[英]Absolute imports in python not working, relative imports work
我似乎无法在 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
这里列出的解决方案都没有帮助
提前感谢您的任何见解!
由于未显示,我必须假设您正在运行python a/foo.py
,这会将脚本目录 ( 'a'
) 放在sys.path
的开头,而实际上您希望当前目录位于开头sys.path
。
您应该改为运行python -m a.foo
,它将正确初始化您的项目结构的sys.path
根。
这是我在其他方面写的更深入的文章,同样的问题可能会变成梨形。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.