我正在尝试正确构建我的 python 2.7 项目(它需要几个子目录)。
我在每个级别都添加了 __init__.py 文件,在导入的情况下,似乎“最佳”做法是使用 绝对 进口种类:
import top_package_folder.package_subfolder.module_name
代替:
import .module_name
即使我的代码位于 package_subfolder 目录中。
正如我最近了解到的那样,我现在正在寻找一种方法来自动将所有这些相对导入转换为绝对导入。
(我尝试了 autopep8,但无法将导入设为绝对值。)
提前致谢。
最佳答案
您可以使用 absolufy-imports
https://github.com/MarcoGorelli/absolufy-imports :
安装
pip install absolufy-imports
用作预提交 Hook 见 pre-commit用于说明
sample
.pre-commit-config.yaml
:- repo: https://github.com/MarcoGorelli/absolufy-imports
rev: v0.3.1
hooks:
- id: absolufy-imports
命令行示例$ cat mypackage/myfile.py
from . import __version__
$ absolufy-imports mypackage/myfile.py
$ cat mypackage/myfile.py
from mypackage import __version__
免责声明:我是这个小包的作者
关于python - 在python中自动将所有相对导入转换为绝对导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27549291/