![](/img/trans.png)
[英]poetry woes - ModuleNotFoundError in visual studio code debugging
[英]How to debug Poetry application in Visual Studio Code
我有一個應用程序,我被授予使用詩歌寫作的所有權,我有一些 Python 經驗,但以前從未使用過詩歌。 我選擇的編輯器是 Visual Studio Code(在 Windows 上),但是我不知道在 launch.json 中要放什么,所以我可以調試應用程序。
如果我在應用程序文件夾中,我可以正常運行
app dostuff
或者
poetry run app dostuff
然而,這在應用程序之外似乎不可能,launch.json 想要一個絕對路徑,我做不到
C:\users\me\app\app dostuff
我收到一條錯誤消息,提示找不到該命令。 如果我不提供絕對路徑 VS Code 會將當前目錄放在 if 前面。 我確實嘗試指向 virtualenv 中生成的文件
C:\Users\me\AppData\Local\pypoetry\Cache\virtualenvs\app-py3.9\Scripts\app dostuff
這只是導致程序在終端中運行,沒有調試。
從詩歌環境運行代碼:
poetry shell
code .
請查看本教程: https://www.pythoncheatsheet.org/blog/python-projects-with-poetry-and-vscode-part-2/
我寫這篇文章對其他讀者來說有點詳盡,但 OP @Mant101 可能只需要執行第 (3.) 和 (4.) 部分並閱讀最后一部分“一些最終(重要)注釋”。
對於其他讀者,您可以閱讀帶編號部分的介紹段落和“一些最終(重要)說明”,然后按照編號步驟(希望)找到可行的解決方案。 編號步驟下方的項目符號(a)解釋該步驟正在做什么,(b)解釋該步驟的一些常見問題以及如何解決它們,或(c)提供一些額外的上下文。
A.1。 您正在使用 Windows
A2。 VS 代碼已安裝
A.3。 VS Code 的默認終端是 PowerShell(我將交替使用“終端”和“PowerShell”)
A.4。 詩歌已安裝
A.5。 安裝了 Microsoft 來自 VS Code 擴展市場的 Python 擴展
Ctrl + Shift + X
打開擴展市場並搜索“python”。 如果已安裝,它將沒有安裝按鈕。本節將讓 Poetry 將一些已經存在的項目文件夾/目錄變成實際的 Poetry 項目。 如果您在要調試文件的文件夾中已經有一個pyproject.toml
文件和一個poetry.lock
文件,那么您可以跳到“2. 使用 Poetry 虛擬環境”部分。
1.1。 打開 VS 代碼
1.2. 在 VS Code 中打開終端(鍵盤快捷鍵: Ctrl + `
)
1.3. 使用 PowerShell 命令(如cd ~\path\to\my_project_folder
)將目錄更改為項目所在的文件夾
pyproject.toml
和poetry.lock
文件的地方 1.4. 在終端/PowerShell 中鍵入poetry init
並按Enter
。
pyproject.toml
文件。 此文件告訴 Poetry 您正在使用哪些版本的 Python、哪些包以及任何限制。 例如,如果您告訴它您只想要 Python 3.8 到(但不包括)3.11,它將具有行python = ">=3.8,<3.11"
1.5。 在終端/PowerShell 中輸入poetry install
,然后按Enter
。
poetry.lock
文件和一個virutalenv。 它還會在該 virtualenv中安裝pyproject.toml
文件中指定的所有包。 根據您擁有的包裹數量,這可能需要一段時間本節創建 Poetry shell並激活在步驟 (1.5.) 中創建的 Poetry 虛擬環境。 嚴格來說,你不需要這樣做來讓 VS Code 調試器工作,但是當你只想運行Python 文件時,它可能會為你節省一些擊鍵。 Go 到“你為什么想做(2.)”,看看這是否值得打擾。 如果您趕時間,只需 go 和“為什么要這樣做 (2.)”部分中的“選項 1”即可在 Poetry 中運行 Python 文件。
2.1。 確保您位於帶有pyproject.toml
的項目目錄/文件夾中,然后在終端中鍵入poetry shell
並按Enter
exit
終端命令將同時停用虛擬環境並退出 Poetry shell假設您不想使用調試器,只想運行python 文件。 您可能習慣於去終端並使用python your_python_file.py
(或python.\your_python_file.py
使用 PowerShell 的選項卡自動完成時)。
那么問題是什么? 好吧,假設您在 your_python_file.py 中import pandas
了your_python_file.py
但 pandas 並未全局安裝(但您確實使用 Poetry 來安裝它,無論是在poetry init
階段還是使用終端命令poetry add pandas
get...一個ModuleNotFoundError: No module named 'pandas'
。
你可能會想,“等等,我不是用 Poetry 安裝了 pandas 嗎?” 答案是肯定的,但只有詩歌知道。 所以你有幾個選擇:
所以而不是
python.\your_python_file.py
您可以使用
poetry run python.\your_python_file.py
這涉及首先執行 (2.1.),然后您可以使用
python.\your_python_file.py
或者,夠有趣的,
使用 Tab 自動完成時python your_python_file.py
。
exit
ls
命令提示符和cat your_python_file.py
命令)本節告訴 VS Code 在 Poetry 虛擬環境中使用 Python 解釋器。
3.1。 打開命令托盤(鍵盤快捷鍵: Ctrl + Shift + P
或F1
)
3.2. 使用鼠標搜索“python:select 解釋器”和 select 或使用箭頭鍵導航並按Enter
3.3. Select "輸入解釋器路徑..."
3.4. Go 返回終端/PowerShell(鍵盤快捷鍵: Ctrl + `
)
3.5. 鍵入poetry env info --path
並按Enter
。
poetry env info
命令檢查“路徑:”部分是否有“NA”。 如果是這種情況,您可以通過執行 (1.5.) 創建一個 virtualenv。 然后重復步驟 (3.5.) 3.6. 將步驟 (3.5.) 的結果復制並粘貼到 VS Code 頂部的提示框中,顯示“輸入 Python 解釋器的路徑”,然后按Enter
4.1。 打開您要調試的 .py 文件
4.2. 設置您希望調試器停止的任何斷點
4.2. 按F5
開始調試器。
4.3. 按F11
單步執行程序
exit
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.