当我在 VS Code 中使用 Python 中的匹配大小写语句时,它会在“问题”选项卡中显示红色波浪线和错误:

python python-jedi visual-studio-code vscode-python python-3.10
有没有办法在 VS Code 的 python 笔记本工作环境中运行给定单元上方的所有单元?
我正在开发一个项目,其结构如下
Parent Directory
----+ MyPackage
----__init__.py
----file1.py
----+ Tests
----test.py
Run Code Online (Sandbox Code Playgroud)
当我从终端运行测试时,我使用
PYTHONATH=./ python ./Tests/test.py
Run Code Online (Sandbox Code Playgroud)
现在,当我在安装“Python Extension”后尝试调试选项时,会出现错误
Exception has occurred: ModuleNotFoundError
No module names 'MyPackage'
Run Code Online (Sandbox Code Playgroud)
如何将 PYTHONPATH 放入调试配置中以使其得到处理?
使用 pytest 和 vscode-python 我想运行之前使用 unittest 框架实现的测试。
因此,我在相应的目录中使用 pytest 成功运行了测试tests。
pytest
Run Code Online (Sandbox Code Playgroud)
我还设置了 vscode-python 并成功测试了几乎所有测试。
但是,这些从子目录加载数据的测试tests/data会失败,因为 vscode-python 似乎从测试目录之外的另一个目录运行 pytest tests。
abc/
|-- tests/
|-- test_function.py
|-- data/
Run Code Online (Sandbox Code Playgroud)
如何设置 vscode-python,以便成功读取已实施的测试中的所有数据文件?
VS Code 的 Python 扩展最近发布了 TensorBoard 集成,但它似乎对我不起作用。
每当我从命令面板运行“Python:启动 TensorBoard”时,我都会看到 此屏幕。这是 TensorBoard 页面,其中显示默认消息“当前数据集没有活动的仪表板”。命令 plate 命令有两个日志目录选项,“使用当前工作目录”和“选择另一个文件夹”,但似乎都不起作用。
但是,当我使用终端命令正常运行 TensorBoard 时
tensorboard --logdir=...
Run Code Online (Sandbox Code Playgroud)
一切正常。这让我认为我的日志目录和张量板安装设置良好,问题出在 VS Code 或 Python 扩展上。
我应该提到我使用 PyTorch 和 PyTorch Lightning 生成日志,而不是 Tensorflow。(就上下文而言,我使用的是 macOS Big Sur)
有谁知道解决方法是什么?
python visual-studio-code tensorboard vscode-python pytorch-lightning
我在 vscode 中运行一个 python 项目virtualenv。Python解释器设置正确。当我试图发现测试时,它给了我一个错误说
python /Users/user/.vscode/extensions/ms-python.python-2019.10.44104/pythonFiles/testing_tools/run_adapter.py discover pytest -- -s project/
Test Discovery failed:
Error: spawn /Users/<username>/apps/project/venv/bin/python ENOENT
Run Code Online (Sandbox Code Playgroud)
我的 vscode settings.json 看起来像这样,我还没有配置 launch.json
{
"python.pythonPath": "/Users/<username>/apps/project/venv/bin/python",
"python.testing.unittestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.pytestEnabled": true,
"python.testing.pytestArgs": [
"project"
],
}
Run Code Online (Sandbox Code Playgroud)
当我/Users/<username>/apps/project/venv/bin/python在终端上输入时,python shell 打开了。
ENOENT 通常意味着它是一个无效的路径,但该路径似乎完全没问题。
$echo $PATH
/Users/<username>/apps/project/venv/bin
Run Code Online (Sandbox Code Playgroud) 当我在 vscode 调试器中运行 pytest 并选中“Uncaught Exceptions”并且有测试错误时,不会发生未捕获的异常,因为 pytest 捕获它们并报告结果。我怎么能告诉 pytest 只让异常发生?以便我可以在 vscode 调试器中捕获它们?
基本上我想要这样的行为,--pdb但我希望它启动 vscode 调试器而不是 pdb。这面旗帜--pdbcls听起来很有希望,但不知道该<module>:<class>送什么。
注意:通常我只会让它在引发异常时中断。但是我们的代码有大量引发但捕获的异常,所以这个选项没有用。
这是在调试 pytest 测试时引发 AssertionError 时 vscode 不会中断的视频:
@rioV8 下面的建议确实打破了异常,但由于某种原因,没有堆栈,这意味着您无法从那里进行调试:
我一定遗漏了一些东西,因为似乎没有其他人需要这种能力。但对我来说,这似乎绝对是测试框架和调试器可以做的最基本的最简单的事情:作为开发人员,我想从出现错误的地方进行调试。
人们使用带有 pytest 的调试器肯定有一些完全不同的方式,我忽略了一些明显的技术。
每当发生类似情况时,Pylint 都会发出警告:
import typing
SEQ_FR = typing.TypeVar("SEQ_FR")
#^^^^^ gets underlined with the warning
Run Code Online (Sandbox Code Playgroud)
警告是这样的:Type variable name "SEQ_FR" doesn't conform to predefined naming style. pylint(invalid-name)
我尝试搜索 Pylint 的文档,但没有找到所使用的确切正则表达式/规范。与常规变量、方法、函数、类等不同,我似乎也无法将自定义正则表达式传递到 Pylint 上。
Pylint 使用什么规范将 TypeVar 变量标记为有效或无效名称?
当我们导入当前环境中使用的Python上当前未安装的模块时,PyCharm建议我们“安装缺少的模块”,如果您单击安装,它会自动安装它...
vscode 是否有任何插件可以做到这一点或类似的事情?例如,我想导入emoji,就像 pycharm 一样,建议我安装缺少的模块,这样我就不必手动进行 pip install
有没有一个插件可以为 vscode 执行此操作?谢谢
为了澄清,我正确设置了环境变量的 .env 文件,当我通过内置终端(默认播放按钮)运行代码或通过 Code Runner 插件输出时,获取这些环境变量的尝试总是以失败告终无效的。但是,通过调试器运行时,同样的事情也可以正常工作。
根据我三年前的研究,这是一个相对广泛经历的问题。我完全遵循了官方文档,并且我知道我正确格式化了 .env 文件,因为它可以与调试器一起使用。
我检查了在 StackOverflow 和 VS-Code GitHub 上找到的所有帖子,尝试了数十种解决方案。其中许多提到的解决方案对我不起作用或者对蒙特雷来说已经过时了。我自己尝试过一些事情,包括:
dev.env等,同时在 VS Code 设置中反映环境文件路径我使用的是上一代 Intel Mac,运行最新的 macOS Monterey 12.3.1、最新的 VS Code 1.66.2 和最新版本的 Python 3.10.4。目前,我设置了默认的环境文件路径:以及在工作区文件夹中${workspaceFolder}/.env命名的文件。.env
除非我错过了一些东西,否则我不确定这个问题怎么会在这么长时间内得不到解决和/或我错过了解决方案。无论我尝试过什么,我都想知道对于几乎每个面临此问题的人来说,最佳/首选解决方案是什么。感谢您的帮助。
python-3.x visual-studio-code vscode-code-runner vscode-python macos-monterey
vscode-python ×10
python ×6
python-3.x ×2
pylint ×1
python-3.10 ×1
python-jedi ×1
tensorboard ×1