簡體   English   中英

VsCode + Python + Linter + 詩歌:麻煩

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM