簡體   English   中英

如何設置 Visual Studio Code Python 擴展的根目錄?

[英]How to set the root directory for Visual Studio Code Python Extension?

我使用 VSCode Python 擴展 ( ms-python.python ) 運行和調試我的項目沒有問題,但是由於 python 子項目根目錄不是整個項目目錄,所以從我的源中導入的所有內容都帶有紅色下划線並列在problemsGo 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.jsonlaunch.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.

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