[英]How do I configure Visual Studio Code with Python extension to not complain about inability to import modules?
[英]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.py
的Start 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.