Ser*_*ban 15 python visual-studio-code vscode-debugger python-poetry
我有一个根据基本 Poetry说明创建的 Python 项目。
项目文件夹是这样的:
my-project
+----my_project
| +-- my_project.py
| +-- File1.py
| +-- File2.py
|
+----pyproject.toml
Run Code Online (Sandbox Code Playgroud)
如何将内容从一个文件导入到另一个文件的示例:my_project.py我有代码
from . import File1, File2
Run Code Online (Sandbox Code Playgroud)
如果我想从 VSCode 调试它,如果我尝试F5在 中my_project.py,我会收到错误:
Exception has occurred: ImportError
attempted relative import with no known parent package
Run Code Online (Sandbox Code Playgroud)
但是,如果我不像上面那样表达导入,则无法使用该poetry命令运行它。
在pyproject.toml文件中,我有这个:
[tool.poetry.scripts]
my-project = "my_project.my_project:run"
Run Code Online (Sandbox Code Playgroud)
run是文件中的入口点方法my_project.py。
要从命令提示符运行项目,我转到项目文件夹(包文件夹所在的位置)并输入poetry run my-project
再说一次,到目前为止,一切都根据Poetry 文档。
问题:如何在 VSCode 中调试这个项目?
我知道我需要创建一个launch.json文件,但我不知道配置应该是什么样子......
谢谢。
Lau*_*ent 13
对于Visual Studio Code,您可以尝试以下操作:
__init__.py在子目录中添加文件my_project.vscode目录中添加一个lauch.json包含以下内容的文件:{
"version": "0.1.0",
"configurations": [
{
"name": "my-project",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"module": "my_project",
"args": []
}
]
}
Run Code Online (Sandbox Code Playgroud)
这里,cwd指向您的工作区文件夹,该文件夹应该是my-project. 然后您应该能够成功运行Run and DebugVisual Studio Code 的模块。
至于Poetry,尝试pyproject.toml像这样修改你的(似乎有一个拼写错误,连字符与下划线):
[tool.poetry.scripts]
my-project = "my-project.my_project:run"
Run Code Online (Sandbox Code Playgroud)
并确保my-project在运行时将 的父目录设置为当前工作目录poetry run my-project。
请参阅这篇文章以获取更多指导。