![](/img/trans.png)
[英]How do I select a sub-folder as a directory containing tests in Python extension for Visual studio code
[英]How to set the root directory for Visual Studio Code Python Extension?
我使用 VSCode Python 擴展 ( ms-python.python
) 運行和調試我的項目沒有問題,但是由於 python 子項目根目錄不是整個項目目錄,所以從我的源中導入的所有內容都帶有紅色下划線並列在problems
等Go to definition
和一些類似的功能無法正常工作。 我如何告訴 IDE 我的項目的起點在哪里:
Whole Project path:
docs
server
entities
user.py
customer.py
env
viewer
db
server
目錄是導入路徑的起始位置:
from entities.user import User
您可以使用以下.env
創建.env
文件:
PYTHONPATH=server
這將根據需要將您的server
文件夾添加到PYTHONPATH
。
(您可能需要重新啟動 VSCode 才能正確考慮PYTHONPATH
。)
編輯以澄清...
在 repo 根目錄下創建一個名為.env
的文件,例如your_repo/.env
。
同樣在您的消費代碼所在的文件夾下創建文件,而不是在 repo root 下,似乎可以工作,例如your_repo/service/.env
。
有關更多詳細信息,請參閱有關環境變量定義文件的文檔。
對我來說,這無需重新啟動 VSC 即可工作,也許這是更新的 VSC 和擴展版本的問題。
如果你使用的是Pylance擴展,你可以通過python.analysis.extraPaths
選項設置你的源文件夾。 默認情況下,它還查找常見的源文件夾名稱,如src
,此選項稱為python.analysis.autoSearchPaths
。
轉到文件 > 首選項 > 設置,搜索 pythonpath。 在 Pylance 選項下,您應該看到Extra Paths ,這是您設置源文件夾的地方。
PYTHONPATH
是一個環境變量,你可以設置它來添加額外的目錄,python 將在其中查找模塊和包。
如果需要為 Visual Studio Code 設置工作目錄,
更好的方法是自定義Settings.json
和launch.json
,這樣做:
// vi .vscode/Settings.json
{
"python.pythonPath": "venv/bin/python",
}
use cwd
to 指定調試器的當前工作目錄,它是代碼中使用的任何相對路徑的基本文件夾。 如果省略,則默認為${workspaceFolder}
(在 VS Code 中打開的文件夾)。
// vi .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: your project name",
"type": "python",
"request": "launch",
"cwd": "${workspaceRoot}/server",
}
]
}
如果您希望服務器在沒有任何 IDE 的情況下正常運行,只需在PYTHONPATH
前面插入Root Drectory
。 假設有一個server/run.py
:
import sys
src_path = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, _src_path)
參考: https : //code.visualstudio.com/docs/editor/debugging#_launch-versus-attach-configurations
參考: https : //code.visualstudio.com/docs/python/debugging#python-articles
參考: https : //docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH
如上所述,設置 PYTHONPATH 使其工作。 我使用以下 .env 內容,以便它適用於任何項目:
PYTHONPATH=${PROJ_DIR}:${PYTHONPATH}
當您在運行/調試配置中選中“將內容根添加到 PYTHONPATH”時,這基本上就是 PyCharm 所做的。 這是一個有用的設置,但它破壞了您,因為您的代碼在 PyCharm 之外失敗。
或者,如果您在終端中運行,請先導出:
export PYTHONPATH=...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.