【发布时间】:2014-12-18 14:51:26
【问题描述】:
我正在尝试正确构建我的 python 2.7 项目(它需要几个子目录)。 我在每个级别都添加了 __init__.py 文件,在导入的情况下,“最佳”实践似乎是使用 absolute进口类:
import top_package_folder.package_subfolder.module_name
代替:
import .module_name
即使我的代码位于 package_subfolder 目录中。
正如我最近了解到的那样,我现在正在寻找一种方法来自动将所有这些相对导入转换为绝对导入。
(我尝试了 autopep8,但无法将导入设为绝对值。)
提前致谢。
【问题讨论】:
-
为什么你认为最好使用绝对导入?
-
@martineau,这是个好问题。我在网上搜索后得出了这个结论,这表明对于作为包运行的项目,绝对导入在某种程度上是“强制性的”,直到 python 2.5 之后 Guido 不再提到它,但暗示相对导入仍然有用仅在特定情况下(但没有详细说明)。
-
顺便说一句,关于相对进口的最佳答案:stackoverflow.com/a/14132912/3607939
-
你会发现大多数 python 开发者更喜欢
from top_package.sub_package import module_name风格。import top_package_folder.package_subfolder.module_name让你的代码异常冗长