我最近开始探索VS Code来开发Python代码,当我试图从子文件夹导入模块时遇到了一个问题。(文件夹包含__init__.py
文件等)我相信我按照说明正确设置了VS Python扩展。除了这个导入命令,其他所有命令都运行良好,但我还没弄明白到底哪里出了问题
该项目的结构如下:根文件夹,设置为cwd
包含两个文件夹(src
和bld
)。src
包含py
-文件,该文件导入使用from bld.foo import foo_function
保存在bld
-文件夹中的foo.py
中的模块
当运行文件时,我得到以下错误:ModuleNotFoundError: No module named ‘bld'
。我安装了几个Anaconda Python环境,每个环境都有同样的问题。当将foo.py
复制到src
目录并使用from foo import foo_function
时,一切正常。
我的launch.json
文件如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File (Integrated Terminal)",
"type": "python",
"request": "launch",
"program": "${file}",
"cwd": "${workspaceFolder}",
"env": {"PYTHONPATH": "${workspaceFolder}:${workspaceFolder}/bld"},
"console": "integratedTerminal"
}
]
}
字符串
任何想法或帮助将不胜感激!
2条答案
按热度按时间dy1byipe1#
斯特凡的方法对我很有效
以文件系统为例:workspaceFolder/folder/subfolder 1/subfolder 2/bar.py
我无法导入类似于:
from folder.subfolder1.subfolder2 import bar
它说:ModuleNotFoundError: No module named 'folder'
我在.vscode/settings.json中添加了以下内容:
字符串
我还在代码的开头添加了:
型
现在,它的工作。
注意事项:我所有的文件夹和目录都有一个名为
__init__.py
的空文件。我仍然需要执行上述步骤。VSCode版本:1.52.0(从10-dec-2020)tnkciper2#
我想我终于自己找到了答案:集成终端不会从
.env
-文件中扫描PYTHONPATH
。当在集成窗口中运行该文件时,PYTHONPATH
是从.env
中正确获取的。因此,为了在终端中运行我的脚本,我必须在settings.json
中添加terminal.integrated.env.*
行,如下所示:字符串