我使用的是带有python插件的vscode和带有
"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

最佳答案

打开设置
搜索autocep8。您应该看到以下结果:
python - vscode autopep8允许在导入之前使用语句-LMLPHP
单击第一个选项下的“edit in settings.json”。
将以下参数添加到用户设置json中:
"python.formatting.autopep8Args": ["--ignore", "E402"]
python - vscode autopep8允许在导入之前使用语句-LMLPHP
这告诉autopep8忽略错误402,即:“模块级导入不在文件顶部”(以下是PEP8中的list of errors
您可以使用相同的方法更改任何autopep8设置。例如,如果只想修复缩进,可以使用"python.formatting.autopep8Args": ["--select", "E1"]
autopep8 readme提供了有关可用选项的更多信息。

关于python - vscode autopep8允许在导入之前使用语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54030320/

10-10 21:29