簡體   English   中英

visual studio code運行程序時如何正確導入python模塊?

[英]How to correctly import python modules when the program runs in visual studio code?

我有一個my_program.py python 腳本。

在這個腳本中,我可以通過使用python -m foo.my_program啟動腳本來在utils/my_util.py中導入 class。

這是my_program.py的內容

from utils.my_util import Util

u = Util()

但是當我在 visual studio 代碼中按下foo/my_program.pyStart Debugging按鈕時,它會生成以下錯誤。

Exception has occurred: ModuleNotFoundError
No module named 'utils'
  File "/Users/my_name/debug/python_proj/foo/my_program.py", line 1, in <module>
    from utils.my_util import Util

如何在 Visual Studio 代碼中運行python -m foo.my_program

我認為.vscode/launch.json中有些東西我可以配置以使程序正確運行。

我試過將"cwd"設置為"${workspaceFolder}" 但這不起作用。

這是我的腳本的文件夾結構。

.
├── foo
│   └── my_program.py
└── utils
    └── my_util.py

我發現在.vscode/launch.json"configurations"下添加以下參數有效。

"cwd": "${workspaceFolder}",
"env": {
    "PYTHONPATH":"${workspaceFolder}"
}

根據 此文檔${workspaceFolder}表示“在 VS Code 中打開的文件夾的路徑”。

這個文檔PYTHONPATH是一個環境變量,用戶可以設置它來添加用戶希望 Python 添加到 sys.path 的其他目錄。 路徑目錄列表。

因此,將${workspaceFolder}添加到PYTHONPATH意味着 python 將在運行import時搜索${workspaceFolder}文件夾。

除了在 launch.json 文件中,您還可以:

在 settings.json 文件中添加它,它會影響在終端內運行的操作,例如Run Python File in Terminal

  "terminal.integrated.env.windows": {
      "PYTHONPATH": "${workspaceFolder}",
  },

或者,創建一個.env文件並將其添加到其中:

PYTHONPATH={some path to the parent folder of the module which you want to import, such as workspaceFolder}

您可以通過settings.json中的"python.envFile"或launch.json中的"envFile"手動指向.env文件, "envFile"將覆蓋"python.envFile"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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