我正在尝试正确构建我的 python 2.7 项目(需要几个子目录)。 我在每个级别都添加了 __ init __。py 文件,在导入的情况下,似乎"最好"练习是使用排序的绝对导入:
import top_package_folder.package_subfolder.module_name
而不是:
import .module_name
即使我的代码存在于package_subfolder目录中。
最近我了解到这一点,我现在正在寻找一种方法来自动将所有相对导入转换为绝对导入。
(我尝试过autopep8,无法设法绝对进口。)
提前致谢。
答案 0 :(得分:2)
您可以使用 absolufy-imports
https://github.com/MarcoGorelli/absolufy-imports :
pip install absolufy-imports
有关说明,请参阅 pre-commit
示例.pre-commit-config.yaml
:
- repo: https://github.com/MarcoGorelli/absolufy-imports
rev: v0.3.0
hooks:
- id: absolufy-imports
$ cat mypackage/myfile.py
from . import __version__
$ absolufy-imports mypackage/myfile.py
$ cat mypackage/myfile.py
from mypackage import __version__
免责声明:我是这个小包的作者