繁体   English   中英

python中的绝对导入不起作用,相对导入起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM