Python 在使用Visual Studio代码和autopep8导入之前允许语句
我将Visual Studio代码与Python插件一起使用,并将autopep8与以下内容一起使用:Python 在使用Visual Studio代码和autopep8导入之前允许语句,python,visual-studio-code,vscode-settings,autopep8,Python,Visual Studio Code,Vscode Settings,Autopep8,我将Visual Studio代码与Python插件一起使用,并将autopep8与以下内容一起使用: "editor.formatOnSave": true 我有需要导入的本地软件包,因此我有如下内容: import sys sys.path.insert(0, '/path/to/packages') import localpackage 但是当我保存时,VisualStudioCode/autopep8将所有导入语句移到代码之前,因此Python无法找到我的本地包
"editor.formatOnSave": true
我有需要导入的本地软件包,因此我有如下内容:
import sys
sys.path.insert(0, '/path/to/packages')
import localpackage
但是当我保存时,VisualStudioCode/autopep8将所有导入语句移到代码之前,因此Python无法找到我的本地包
import sys
import localpackage
sys.path.insert(0, '/path/to/packages')
我如何告诉VisualStudioCode/autopep8在导入之前放置一条语句是可以的,或者是否有更正确的方法导入本地包
作为一种解决方法,如果您在if语句中导入,看起来还可以:
import sys
sys.path.insert(0, '/path/to/packages')
if 'localpackage' not in sys.modules:
import localpackage
“python.formatting.autopep8Args”:[“--ignore”,“E402”]
autopep8
忽略错误402,即:“模块级导入不在文件顶部”(以下是pep8中的错误)
您可以使用相同的方法更改任何autopep8
设置。例如,如果您只想修复缩进,可以使用“python.formatting.autopep8Args”:[“--select”,“E1”]
提供了有关可用选项的详细信息。如果您不想通常禁用导入排序,而只是对特定行禁用它,则可以在每行末尾使用以下pragma:
# noqa
或
比如你的例子:
import sys # noqa
sys.path.insert(0, '/path/to/packages') # noqa
import localpackage
我不知道autopep8的标志是什么,但是一旦你找到它,你就可以用
“python.formatting.autopep8Args”
来指定它。settings.json中的条目应该是“python.formatting.autopep8Args”:[“--ignore”,“E402”]
(参见下面的完整答案)。作为补充说明,我一次只能得到一个参数。如果我尝试执行类似于:“python.formatting.autopep8Args”:[“--ignore”,“E402”,“--ignore”,“E401”]
这两个参数中只有一个有效(通常是第二个)。我不知道这是为什么,如果有人有一个解决方案,将不胜感激@您需要用逗号将它们分开吗?例如,“--ignore”,“E401,E701”
我可以在setup.cfg中放一些东西吗?现在在vscode中,您需要搜索AutoDep8,单击“添加项”,添加--ignore=E402,然后单击“确定”。
import sys # noqa
sys.path.insert(0, '/path/to/packages') # noqa
import localpackage