简体   繁体   中英

Convert all relative imports to absolute automatically in python

I am trying to structure my python 2.7 project (which entails several subdirectories) correctly. I have added __init__.py files on every level, and in the case of imports it seems that the "best" practice is to use absolute imports of the sort:

import top_package_folder.package_subfolder.module_name

instead of:

import .module_name

even when my code lives in the package_subfolder directory.

As I learned about this recently, I am now looking for a way to automatically convert all those relative imports to absolute ones.

(I tried autopep8 and could not manage to make imports absolute.)

Thanks in advance.

You can use absolufy-imports https://github.com/MarcoGorelli/absolufy-imports :

Installation

pip install absolufy-imports

Usage as a pre-commit hook

See pre-commit for instructions

Sample .pre-commit-config.yaml :

-   repo: https://github.com/MarcoGorelli/absolufy-imports
    rev: v0.3.0
    hooks:
    -   id: absolufy-imports

Command-line example

$ cat mypackage/myfile.py
from . import __version__
$ absolufy-imports mypackage/myfile.py
$ cat mypackage/myfile.py
from mypackage import __version__

Disclaimer: I'm the author of this little package

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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