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, func2
和 from 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 终端中的文件 和 运行 没有调试 都有效。
我有以下包结构:
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, func2
和 from 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 终端中的文件 和 运行 没有调试 都有效。