VS代码中的Python:从子文件夹导入模块时出错

问题描述 投票:0回答:1

我最近开始探索VS Code来开发Python代码,当我尝试从子文件夹中导入模块时遇到了一个问题。当我在Jupyter笔记本中执行它时,完全相同的代码可以完美运行(子文件夹包含__init__.py文件等。)我相信我已按照说明正确设置了VS Python扩展。除此一个导入命令以外的所有其他命令均能正常工作,但我无法弄清楚到底出了什么问题。

项目的结构如下:设置为cwd的根文件夹包含两个子文件夹(srcbld)。 src包含py文件,该文件导入使用foo.py]在bld文件夹中的模块保存在from bld.foo import foo_function中的模块。

运行文件时,出现以下错误: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"
        }
    ]
}

任何想法或帮助将不胜感激!

我最近开始探索VS Code来开发Python代码,当我尝试从子文件夹中导入模块时遇到了一个问题。当我在...

python visual-studio-code import module subdirectory
1个回答
0
投票

[我想我终于自己弄清楚了答案:集成终端不会从PYTHONPATH文件中扫描.env。但是,在集成窗口中运行文件时,PYTHONPATH正确取自.env。因此,为了在终端中运行脚本,我必须在terminal.integrated.env.*中添加settings.json行,如下所示:

© www.soinside.com 2019 - 2024. All rights reserved.