标签: vscode-python

如何在 vscode python 中撤消“不再显示此提示”?

当提示在 VSCode Python 中安装 Pylint 时,不小心选择了“不再显示此提示”。我应该如何撤消/重置操作以便再次出现提示?

visual-studio-code vscode-python

6
推荐指数
1
解决办法
1539
查看次数

使用 Python 或 TypeScript 转换我在 VSCode 中选择的文本

假设我在编辑器中选择了一些文本。我想定义自己的 Python 函数或脚本:

  1. 将所选文本作为字符串作为输入。
  2. 转换它并返回一个新字符串,该字符串替换编辑器中的选定文本

此外,我想在理想情况下将这些函数或脚本注册为 VSCode 命令(具有特定的commandIDs),我可以定义自己和 VSCode 中的命令面板。通过这样做,我可以将它们绑定到keybindings.json具有特定快捷方式和 when 子句的快捷方式。


VSCode 中是否有任何内置功能可以执行此操作?如果没有,我可以遵循哪些步骤来做到这一点?

python visual-studio-code vscode-python

6
推荐指数
1
解决办法
365
查看次数

如何在 vscode 中为 python unittest 配置单元测试

我正在使用 Python 3.6 和最新版本的 vscode。

我的文件夹结构:

/folder
    /src
        src.py
    /tests
        src_test.py
Run Code Online (Sandbox Code Playgroud)

src.py:

class Addition:
  def __init__(self, a, b):
    self.a = a
    self.b = b
  def run(self):
    return self.a + self.b
Run Code Online (Sandbox Code Playgroud)

src_test.py:

import unittest

from ..src.addition import Addition

class TestAddition(unittest.TestCase):
  def test_addition(self):
    inst = Addition(5, 10)
    res = inst.run()
    self.assertEqual(res, 16)

if( __name__ == "main"):
  unittest.main()
Run Code Online (Sandbox Code Playgroud)

这是我的项目settings.json:

{
  "python.testing.unittestArgs": [
    "-v",
    "-s",
    ".",
    "-p",
    "*_test.py"
  ],
  "python.testing.pytestEnabled": false,
  "python.testing.nosetestsEnabled": false,
  "python.testing.unittestEnabled": true
}
Run Code Online (Sandbox Code Playgroud)

然后在项目根文件夹下:

python3 -m unittest 测试/src_test.py

 File "/usr/lib/python3.6/unittest/loader.py", line …
Run Code Online (Sandbox Code Playgroud)

python-unittest visual-studio-code python-3.6 vscode-python

6
推荐指数
1
解决办法
2776
查看次数

VS Code - pylint 未运行

我在 VS Code 中设置了一个工作区,我在其中进行 python 开发。我启用了 linting,启用了 pylint 作为提供程序,并启用了保存时的 lint,但我在“问题”面板中仍然没有看到任何错误。当我在虚拟环境中通过命令行运行 pylint 时,我看到了很多问题 - 所以我知道 pylint 可以工作。我还使用黑色格式(保存时),它可以正常工作。我尝试过使用默认的 pylint 路径以及手动将其更新到确切的位置,但仍然没有结果。当我查看 python 的输出面板时,看起来 pylint 甚至从未运行(即我看到 black 的命令在那里运行,但 pylint 没有任何命令)。

我的 pylint 版本是 2.4.4,VS Code 版本是 1.46

知道如何让它发挥作用吗?

pylint visual-studio-code vscode-python

6
推荐指数
1
解决办法
7391
查看次数

vscode的python中mypy> = 0.780的“源文件发现两次”错误

在我的 python 项目中,mypy从 0.770升级到 0.782后,在以前没有类型错误的文件中收到错误:

my_pkg_name\__init__.py: error: Source file found twice under different module names: 'top_pkg.my_pkg_name' and 'my_pkg_name'
Found 1 error in 1 file (checked 1 source file)
Run Code Online (Sandbox Code Playgroud)

我很确定这与mypy上的问题 #8944以及 vscode-python 在打开的文件上执行 mypy 的方式有关。我尝试添加各种 mypy 标志(例如--namespace-packages, --no-namespace-packages),但这并没有解决问题。

my_pkg_name 确实包含一个__init__.py,所以也包含top_pkg。有了mypy==0.770这不是一个问题。

查看扩展的输出,这是调用 mypy 的方式:

> ~\.virtualenvs\OfflineSystem.38\Scripts\python.exe `
   c:\Users\***\.vscode\extensions\ms-python.python-2020.8.108011\pythonFiles\pyvsc-run-isolated.py mypy `
   --ignore-missing-imports --follow-imports=silent --show-column-numbers `
   d:\***\top_pkg\my_pkg_name\sub_pkg\my_file.py
Run Code Online (Sandbox Code Playgroud)

是否应该更改与 mypy 相关的 vscode 设置中的某些内容才能使其正常工作?

python visual-studio-code mypy vscode-python

6
推荐指数
1
解决办法
1632
查看次数

vscode-python 中的事后调试?

Python 的事后调试(通过 IPython 的%debug魔法很容易访问)允许一次或多次跳出异常的范围,并查看抛出异常之前的变量。非常有用。

VSCode-python 与 Python 的调试器有很好的集成。如果引入了断点,则可以使用调试工具栏进入和退出编辑器中的功能。这比使用控制台进行调试更加用户友好。但是,此调试工具栏似乎无法在事后分析模式下工作。

当使用“开始调试”命令 (F5) 在 vscode 中运行 Python 脚本并抛出异常时,异常会在 vscode 的编辑器中突出显示,但退出不起作用 - 如果我在调试工具栏。

有没有办法将 Python 的事后调试与 vscode 的编辑器集成在一起?我错过了什么吗?我期待这只是工作。

visual-studio-code vscode-python

6
推荐指数
1
解决办法
111
查看次数

vscode pylance 类型检查无法识别重新导入

打开"python.analysis.typeCheckingMode": "strict"或时"python.analysis.typeCheckingMode": "basic".py包含其他模块导入的文件无法识别重新导入并以错误突出显示它们:

"Flow" is not exported from module "prefect"
  Import from "prefect.core" insteadPylancereportPrivateImportUsage
Run Code Online (Sandbox Code Playgroud)

其中原始模块具有__init__.py但不包含__all__导出,但导入所有单个对象(在上面的情况下Flow)。有什么方法可以关闭该特定设置settings.json或处理消除错误噪音的问题吗?

visual-studio-code python-typing vscode-python pylance

6
推荐指数
1
解决办法
2693
查看次数

将 VS Code 交互式窗口链接到正在运行的 Jupyter Notebook

假设您在 VS Code 中打开了两个窗口,一个是 Jupyter Notebook,另一个是 Python 交互窗口。两者都运行相同的内核。有没有办法链接这两个窗口,以便当单元在笔记本中运行时,交互式窗口将知道结果变量?

我知道 VS Code 有一种可以链接到交互式窗口的 Python 代码格式,并且 Jupyter 笔记本可以转换为这种格式。是否可以直接将 Jupyter 笔记本链接到交互式窗口,而无需先进行此转换?

对于 JupyterLab,这是通过 New Console for Notebook 命令来完成的。

jupyter-notebook vscode-python

5
推荐指数
0
解决办法
628
查看次数

vscode/pylance 自动导入错误的根路径

假设我有一个具有以下文件结构的项目:

\n
project_dir\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package1\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 module1.py\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 package2\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 module2.py\n
Run Code Online (Sandbox Code Playgroud)\n

当我想在其他模块中使用 module1 中的某个类时,我输入类似的内容

\n
class SomeNewClass(ClassFromModule1):  # here I press ctrl-space to make auto-import\n    ...\n
Run Code Online (Sandbox Code Playgroud)\n

当 Pylance 进行自动导入时,它总是从项目的根目录开始,所以我得到了这个自动导入:

\n
from src.package1.module1 import ClassFromModule1\n
Run Code Online (Sandbox Code Playgroud)\n

问题是我的工作目录是src并且我想得到

\n
from package1.module1 import ClassFromModule1\n
Run Code Online (Sandbox Code Playgroud)\n

有没有办法修复自动导入 Pylance 功能的根路径?

\n

python visual-studio-code vscode-python pylance

5
推荐指数
1
解决办法
1976
查看次数

VSCode Python 测试“未找到测试结果...”错误

在多项目(VSCode 将其称为多根)python 存储库中工作时,用于测试的 VSCode python 插件在选择运行所有测试时无法运行所有测试,但运行单个文件夹或测试会通过。这显然是一个奇怪的问题,所以我进一步调查了这一点。

vscode python插件在“测试结果”面板中的输出如下:

Running tests (pytest): /home/workspace
Running test with arguments: --rootdir /home/workspace --override-ini junit_family=xunit1 --junit-xml=/tmp/tmp-289km5DwtjAXzkh.xml
Current working directory: /home/workspace
Workspace directory: /home/workspace
Run completed, parsing output
Test result not found for: ./my_awesome_dir/tests/my_awesome_module/my_awesome_test.py::TestAwesomeness::test_is_awesome[input_data0-AwesomeStuff]
Run Code Online (Sandbox Code Playgroud)

这个问题之前已经在 vscode-python 存储库中提到过: https: //github.com/microsoft/vscode-python/issues/18658

然而,即使我找到了解决问题的方法,VSCode Python 存储库也不允许向现有问题添加更多注释,也不允许打开新问题,以便我可以在那里添加更适合的信息。因此,我打算在这里添加这些信息,这可能是第二好的地方。

python pytest vscode-extensions vscode-python

5
推荐指数
1
解决办法
3937
查看次数