![](/img/trans.png)
[英]How to specify correct python version for Python Language Server when using multi-root workspace
[英]vscode multi-root workspace: specifying python path in env files
我有以下文件夾結構。 Project1 和 Project2 是多根工作區的一部分。
我將在 windows 上開發,但在 linux 上運行。所以我想保留不同的環境文件(.env 和 .env_linux),並根據運行的操作系統加載它們。 .env 文件如下所示:
PYTHONPATH=./src:./src/utils:./src/app:./src/services
我的 launch.json 文件如下所示:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Run App",
"type": "python",
"request": "launch",
"program": "${workspaceFolder:project1}/src/app/app.py",
"console": "integratedTerminal",
"justMyCode": true,
"windows": {
"envFile": "${workspaceFolder:project1}/.env"
},
"linux": {
"envFile": "${workspaceFolder:project1}/.env_linux"
}
}
]
}
app.py 中的代碼如下所示 - 只有一行試圖導入 utils 模塊:
from utils import utils
當代碼運行時,在上面一行我得到錯誤“No module named 'utils'”
所以我接下來將以下內容添加到我的設置中。json:
"terminal.integrated.env.windows": {
"python.envFile": "${workspaceFolder:project1}/.env",
},
"terminal.integrated.env.linux": {
"python.envFile": "${workspaceFolder:project1}/.env_linux",
},
這並沒有解決問題。 我認為這種 env 文件方法行不通,然后將 PYTHONPATH 添加到 settings.json 中,如下所示,但我仍然遇到相同的錯誤:
"terminal.integrated.env.windows": {
"python.envFile": "${workspaceFolder:project1}/.env",
"python.pythonPath":"${workspaceFolder:project1}/src:${workspaceFolder:project1}/src/app:${workspaceFolder:project1}/utils",
"PYTHONPATH":"${workspaceFolder:project1}/src:${workspaceFolder:project1}/src/app:${workspaceFolder:project1}/utils",
},
仍然是同樣的錯誤。 我也試過更改.env 文件以引用絕對路徑無濟於事。 我究竟做錯了什么???
有趣的是,pylance 能夠在編輯時找到包/模塊。 就在運行時,我得到了那個錯誤。
對於最初的問題,
我們使用;
拆分環境變量而不是:
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.