簡體   English   中英

vscode 多根工作區:在 env 文件中指定 python 路徑

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

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