如何防止 PyDev 的 autopep8 导入格式化程序移动 site.addsitedir() 调用?

How to prevent PyDev's autopep8 import formatter from moving site.addsitedir() calls?

Eclipse PyDev 插件包括出色的集成 autopep8 支持。它在保存时自动将代码格式化为 PEP8 样式,有几个旋钮和选项可以根据您的需要进行定制。

但是 autopep8 导入格式化程序破坏了 site.addsitedir() 用法。

import site

site.addsitedir('/opt/path/lib/python')

# 'ourlib' is a package in '/opt/path/lib/python', which 
# without the above addsitedir() would otherwise not import.
from ourlib import do_stuff

并且在 PyDev 的 autopep8 导入格式化程序之后,它将其更改为:

import site

from ourlib import do_stuff

site.addsitedir('/opt/path/lib/python')

ImportError: No module named ourlib 打破 from ourlib import do_stuff

问题:

是否有 PyDev 设置或 autopep8 命令行选项来阻止它移动 site.addsitedir() 调用?

我能找到的最佳选择是在 PyDev 中关闭导入排序。这不是一个完整的解决方案,但比完全关闭 autopep8 代码格式要好。

只需取消选中 Eclipse/PyDev 首选项中的 Sort imports on save? 选项。

对于带有 PyDev 3.9.2 的 Eclipse Kepler,Service Release 2,您可以在这里找到它:

Windows -> Preferences 
--> PyDev -> Editor -> Save Actions
----> "Sort imports on save?" (uncheck)

老歌但仍然相关,因为我发现了这个问题。

我正在使用 VSCode 和 autopep8。 您可以通过向相关行添加 # nopep8 来禁用格式设置。

ps。检查了 link 的文档,但找不到它:(