繁体   English   中英

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

[英]Convert all relative imports to absolute automatically in python

我正在尝试正确构建我的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

用作预提交钩子

有关说明,请参阅预提交

示例.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__

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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