Pycharm auto relative imports

两盒软妹~` 提交于 2019-12-19 05:13:09

问题


Whenever you use autoimport provided by PyCharm it generates an absolute path import. i.e.

from my_package.my_subpackage import my_thing

instead of

from .my_subpackage import my_thing

Is there a setting to use relative imports instead of absolute ones when importing a python package?


回答1:


It appears currently there is no way to change the import style for auto-import feature to use relative imports. The only style changes you can make to import statements are how the absolute imports are structured:

(The Jetbrains/PyCharm settings search functionality is excellent by the way).

The same thing happens when refactoring, it's definitely an option I'd like to see added.




回答2:


It will be possible starting with 2019.3 https://youtrack.jetbrains.com/issue/PY-6054 Note, that it will not do the relative import automatically if there are no other relative imports in that file yet. There is also an action to convert the existing absolute import to relative:




回答3:


I would advise against relative in general, you can refer to this question: https://softwareengineering.stackexchange.com/a/159505

Also, you can check official pep8 specs https://www.python.org/dev/peps/pep-0008/

Absolute imports are recommended, as they are usually more readable and tend to be better behaved (or at least give better error messages) if the import system is incorrectly configured (such as when a directory inside a package ends up on sys.path):

From my personal experience it turns out that they sometimes poorly integrate with Pycharm IDE when there's more complex package layout breaking test running through Pycharm. I suppose there might be some issues in other tools too.



来源:https://stackoverflow.com/questions/48702550/pycharm-auto-relative-imports

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!