VSCode格式化导包代码出现的问题

当导入上层相邻目录的包时,需要先将其路径添加至sys.path,再执行import。be like:

1
2
sys.path.append(sys.path[0] + '\\..\\..')
from tools.py.pyTools import Tools_all

而VSCode默认自带格式化工具autopep8 会将其顺序自动调整为下面这样,导致无法正确导入

1
2
from tools.py.pyTools import Tools_all
sys.path.append(sys.path[0] + '\\..\\..')

因此需要在文件>首选项>联机服务设置,搜索formatting,将如下位置调整为yapf。注意,修改后需要在pip安装yapf库,VSCode 会自动提示的。

autopep8 、yapf 、 black对比

autopep8

autopep8 是一个国人中知名度最高和使用最广泛的自动格式化工具。 一个较为宽松的格式化工具,只会以最低限度的标准对不符合 pep8 标准的代码进行修正。可能无法满足那些有特定需求,或想让代码看起来更干净更漂亮的人。autopep8 是刚开始学习 python 的人都被推荐的一个格式化工具,不幸的是它已经不适合当下了。较低的维护频率,较低的社区活跃度,一大堆 issuse 未解决。都是我们放弃它的理由。

yapf

由 google 开发并维护的格式化工具,特点是支持多种格式化风格与功能繁多的自定义配置。默认支持三种格式化样式:pep8, google, Facebook 和 chromium。 yapf的初衷不是让代码符合pep准则, 而且让代码看起来更整洁更友好。yapf 包含着 google 文化中的工程师极客精神,支持多样化的自定义配置是他的优点。如果你对自己的代码风格有硬性的要求,yapf 将是你不二的选择。

black

可以说是最流行最多人使用的python格式化工具了,统一的格式化标准。傻瓜化的使用方式,极少的定制化选项(没错,开发者包括使用 black 的人都认为这是个优势)。black 秉承的是 “less is more” 的设计标准,开发组人员负责调研哪种格式化风格更适合pythonista的开发。允许我们自定义的余地较小,但对于我们来说,有人替我们考虑了哪种方式更好,躺平享受成果不失为一种最好的选择。


VSCode格式化导包代码出现的问题
https://zhouyinglin.cn/post/470b7fc9.html
作者
小周
发布于
2023年3月9日
更新于
2023年3月9日
许可协议