我正在将vscode与python插件一起使用,并将autopep8与
"editor.formatOnSave": true
。
我有需要导入的本地软件包,所以我有类似的东西
import sys
sys.path.insert(0, '/path/to/packages')
import localpackage
但是当我保存时,vscode / autopep8将所有导入语句移到代码之前,因此python无法找到我的本地包。
import sys
import localpackage
sys.path.insert(0, '/path/to/packages')
我如何告诉vscode / autopep8可以在导入之前放置一条语句,还是有导入本地软件包的更正确方法?
作为一种解决方法,如果您导入if语句,看起来就可以了
import sys
sys.path.insert(0, '/path/to/packages')
if 'localpackage' not in sys.modules:
import localpackage
答案 0 :(得分:6)
"python.formatting.autopep8Args": ["--ignore", "E402"]
这告诉autopep8
忽略错误402,即:“模块级别导入不在文件顶部”(这是pep8中的list of errors)
您可以使用相同的方法来更改任何autopep8
设置。例如,如果您只想修复缩进,则可以使用"python.formatting.autopep8Args": ["--select", "E1"]
autopep8 readme包含有关可用选项的更多信息。
答案 1 :(得分:-1)
如果您通常不想禁用导入排序,而只对特定的行禁用它,则可以在该行的末尾使用以下编译指示:
# nopep8
或
{{1}}