当我打开 python 文件时,诊断似乎工作正常。然后,我导航到出现诊断错误的行,按快捷方式调用代码操作(在我的例子中为“<space>ca”),然后收到一条消息“没有可用的代码操作”。我尝试运行它以解决不同的错误,例如以下错误:
b =1 #E225 missing whitespace around operator
from jinja2 import StrictUndefined #'jinja2.StricUndefined' imported but unused
import jjj # import-error: Unable to import 'jjj'
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试了两个 LSP 服务器:pyright 和 pylsp,两者都给了我相同的“没有可用的代码操作”
我见过类似的问题,但 JavaScript在这里询问,它建议安装一个插件,但这对我不起作用。
neovim language-server-protocol pyright python-language-server nvim-lspconfig
以下测试:
def test_something():
assert "ddd" == "pepe"
Run Code Online (Sandbox Code Playgroud)
使用 pytest 运行时会出现此错误消息:
E AssertionError: assert 'ddd' == 'pepe'
E - ddd
E + pepe
Run Code Online (Sandbox Code Playgroud)
但是,如果我们将 assert 方法移动到不同的文件assertion.py:
class CustomerAssertor(object):
def __init__(self,name):
self.name =name
def assert_name(self,expected):
assert self.name ==expected
Run Code Online (Sandbox Code Playgroud)
我们将测试更改为:
from sql_gen.test.utils.assertion_util import CustomerAssertor
def test_something():
CustomerAssertor("ddd").assert_name("pepe")
Run Code Online (Sandbox Code Playgroud)
现在我收到以下错误:
self = <assertions.CustomerAssertor object at 0x7fbcc3d31588>, expected = 'pepe'
def assert_name(self,expected):
> assert self.name ==expected
E AssertionError
Run Code Online (Sandbox Code Playgroud)
此消息的信息量并不大,因为它没有告诉您名称的值是什么,为什么?
我已经在 Windows 10 工作站的 WSL(Linux 的 Windows 子系统)中安装了 Ansible。
我的目标是同时配置 WSL 和 Windows 10 本身。
我能够针对本地主机运行剧本,它通过 SSH 连接和配置 WSL。
但是,我不确定 Ansible 是否可以针对 Windows 主机运行 playbook,以便能够自行设置 Windows(例如,使用 Chocolatey 安装软件包)
这甚至可能吗?或者 Ansible 只能在安装在不同的 Linux 机器上时设置 Windows 节点?