在python中自动将所有相对导入转换为绝对值

时间:2014-12-18 14:51:27

标签: python import

我正在尝试正确构建我的 python 2.7 项目(需要几个子目录)。 我在每个级别都添加了 __ init __。py 文件,在导入的情况下,似乎"最好"练习是使用排序的绝对导入:

import top_package_folder.package_subfolder.module_name

而不是:

import .module_name

即使我的代码存在于package_subfolder目录中。

最近我了解到这一点,我现在正在寻找一种方法来自动将所有相对导入转换为绝对导入。

(我尝试过autopep8,无法设法绝对进口。)

提前致谢。

1 个答案:

答案 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__

免责声明:我是这个小包的作者