每当你使用PyCharm提供的autoimport时,它都会生成一个绝对路径导入。即。
from my_package.my_subpackage import my_thing
而不是
from .my_subpackage import my_thing
导入python包时是否有使用相对导入而不是绝对导入的设置?
答案 0 :(得分:10)
目前似乎有没有方法来更改自动导入功能的导入样式以使用相对导入。您可以对import语句进行的唯一样式更改是绝对导入的结构:
(顺便说一句,Jetbrains / PyCharm设置搜索功能非常出色)。
同样的事情发生在重构时,它绝对是我想看到的一个选项。
答案 1 :(得分:3)
从2019.3 https://youtrack.jetbrains.com/issue/PY-6054开始可能 请注意,如果该文件中还没有其他相对导入,它将不会自动进行相对导入。还有一个将现有绝对导入转换为相对导入的操作:
答案 2 :(得分:0)
我一般建议不要亲戚,您可以参考以下问题: https://softwareengineering.stackexchange.com/a/159505
此外,您可以查看官方的pep8规格https://www.python.org/dev/peps/pep-0008/
推荐使用绝对导入,因为如果导入系统配置不正确(例如,程序包中的目录以sys结尾时),它们通常更易于阅读,并且通常表现更好(或至少提供更好的错误消息)。路径):
从我的个人经验来看,当在Pycharm中进行更复杂的封装布局破坏测试时,有时它们与Pycharm IDE的集成度很差。我想其他工具也可能存在一些问题。