PyCharm 是否以不同方式处理本地包裹?

Do PyCharm handles local packages differently?

我有以下包结构:

project\
  app\
    main.py
    __init__.py
  lib\
    funcs.py
    __init__.py

当我尝试使用 from lib.funcs import func1, func2 将我的函数从 funcs.py 导入到 main.py 时,它在 PyCharm 中工作得很好,但在 VS Code 中却不行。在 VS Code 中,我得到:

ModuleNotFoundError: No module named 'lib'

但是,如果我将结构更改为:

project\
  main.py
  lib\
    funcs.py
    __init__.py

它在 VS Code 中也能正常工作。 这是为什么?有没有办法像第一个例子那样从 app 包中 运行 导入代码? 我尝试使用 __init__.py 文件,使用 from .lib.funcs import func1, func2from project.lib.funcs import func1, func2 将不同的文件夹制作和解开一个包。在第一种情况下,我得到:

ImportError: attempted relative import with no known parent package'

第二个:

ModuleNotFoundError: No module named 'project'

打开launch.json并添加

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

main.py 中,导入 from lib import func 等模块。此解决方案仅在您 运行 没有 Debugging:

时有效

第二种方式是在导入模块之前添加如下代码,不需要在launch.json[=17中添加args env =]

import sys
sys.path.append("./")

单击右上角的绿色按钮 运行 Python 终端中的文件运行 没有调试 都有效。