不愿意看问题描述可以直接看解决方案
问题描述
vscode在导入自定义包方面会出现些问题,从github上下个项目运行不了,显示 ModuleNotFoundError: No module named ’ *** '。
比如有以下项目,工程名是experience,下面有parent包。parent包有parent_main.py以及child子包,child包里面有child_main.py
experience
|----parent
|------parent_main.py
|------child
|----------child_main.py
parent_main.py
def parent_main_func():
print('parent_main_func')
if __name__ == '__main__':
import sys
# 查看环境变量
for a_path in sys.path:
print(a_path)
vscode运行结果
c:\Project\experience\parent
C:\Applications\Anaconda\envs\pytorch\python39.zip
C:\Applications\Anaconda\envs\pytorch\DLLs
C:\Applications\Anaconda\envs\pytorch\lib
C:\Applications\Anaconda\envs\pytorch
C:\Users\Powerful\AppData\Roaming\Python\Python39\site-packages
C:\Applications\Anaconda\envs\pytorch\lib\site-packages
C:\Applications\Anaconda\envs\pytorch\lib\site-packages\pyeeg-0.4.4-py3.9.egg
少了最关键的本项目的根目录 C:\Project\experience
child_main.py
if __name__ == "__main__":
from parent.parent_main import parent_main_func
parent_main_func()
vscode运行结果
报错:ModuleNotFoundError: No module named ‘parent’
解决方案:
在vscode的setting.json里面设置自动将项目的根目录添加到环境变量。
1.打开setting.json。在左下角的设置里面
2.往下扒拉
3.在pythonPath下面添加一行代码(直接复制粘贴,不用改!)
"terminal.integrated.env.windows": {"PYTHONPATH":"${workspaceFolder};${env:PYTHONPATH}"},
对于linux系统这个语句是不行的,他会在最后多个分号。应该改为:
"terminal.integrated.env.windows": {"PYTHONPATH":"${workspaceFolder}:${env:PYTHONPATH}"},