vscode autopep8导入前允许语句

2024-09-30 01:23:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python插件中使用vscode,在

"editor.formatOnSave": true。在

我有需要导入的本地包,所以我有类似

import sys
sys.path.insert(0, '/path/to/packages')
import localpackage

但是当我保存时,vscode/autoep8会在代码之前移动所有的import语句,所以python找不到我的本地包。在

^{pr2}$

如何告诉vscode/autopep8在导入之前放置一个语句是可以的,或者有没有更正确的方法来导入本地包?在

作为一种解决方法,如果您在if语句中导入,它看起来没问题

import sys

sys.path.insert(0, '/path/to/packages')
if 'localpackage' not in sys.modules:
    import localpackage

Tags: topath方法import插件trueifpackages
2条回答
  1. 打开设置
  2. 搜索autoep8。您将看到以下结果:

enter image description here

  1. 单击“Edit in”(编辑设置.json“在第一个选项下
  2. 将以下参数添加到用户设置json中:

"python.formatting.autopep8Args": [" ignore", "E402"]

enter image description here

这告诉autopep8忽略错误402,即:“模块级导入不在文件顶部”(这是pep8中的list of errors

您可以使用相同的方法更改autopep8的任何设置。例如,如果只想修复缩进,可以使用"python.formatting.autopep8Args": [" select", "E1"]

autopep8 readme包含有关可用选项的详细信息。在

如果您不想在一般情况下禁用导入排序,而只是对特定行禁用导入排序,则可以在该行末尾使用以下pragma:

# noqa

或者

^{2}$

相关问题 更多 >

    热门问题