[英]VsCode + Python + Linter + Poetry: Troubles
我曾經解決過這個問題,但我不記得如何了。 我必須同時使用帶有 Linting 的 VSCode,當然,還要運行調試器。 對於棉絨,我使用 Pylama。 文件夾結構如下。
├── poetry.lock
├── pyproject.toml
├── README.md
└── src
├── app
│ ├── api
│ ├── core
│ │ ├── config.py
│ │ ├── __pycache__
│ │ │
│ │ └── worker.py
│ ├── crud
│ ├── __init__.py
│ ├── lib
│ │ ├── be.py
│ │ ├── __init__.py
│ │ ├── logger.py
│ │ ├── omoi.py
│ │ └── __pycache__
│ │
│ ├── main.py
main.py
非常簡單,Linter 沒有任何抱怨:
import argparse
import lib.logger
from core.config import settings
from core.worker import Worker
if __name__ == "main":
parser = argparse.ArgumentParser(description='Basic Worker')
parser.add_argument('--mode', type=str,
choices=['test', 'dummy', 'prod'],
default='prod')
args = parser.parse_args()
mode = args.mode
main_worker = Worker()
main_worker.start()
作為解釋器,我選擇了一個由詩歌 shell 命令創建的。 在 vscode 的終端和 IDE 的底部都確認了:
service on main [✘!?] is 📦 v0.1.0 via 🐍 v3.10.6 (service-v4nvssyk-py3.10)
從終端運行程序:
service/src# pyton main.py
效果很好。
但是在 VSCode (F5) 的調試模式下,我總是遇到異常:
ModuleNotFoundError
No module named 'app'
File "/home/me/service/src/app/lib/logger.py", line 4, in <module>
from app.core.config import settings
File "/home/me/service/src/app/main.py", line 2, in <module>
import lib.logger
為什么? 該launch.json為:
{
"configurations": [
{
"name": "Python: current file",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"env": { "PYTHONPATH": "${workspaceRoot}"}
}
]
}
我找到了解決方案。 調試配置應為:{“配置”:[
{
"name": "Python: file corrente",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"cwd": "${workspaceRoot}/src",
"env": { "PYTHONPATH": "${workspaceRoot}/src"}
}
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.