已添加至sys.path的Valpylib模块为何无法被Python识别?
模块导入失败的原因分析及解决办法
PYTHONPATH路径层级错误
你添加到PYTHONPATH的是C:\Python_Projects\Valpylib,但正确应该添加它的父目录C:\Python_Projects。Python导入模块时,会在sys.path的目录下查找模块文件夹,你直接把Valpylib本身的路径加进去,Python会在这个目录里找名为Valpylib的子文件夹,自然找不到。把C:\Python_Projects加入PYTHONPATH后,Python就能识别到Valpylib模块。init.py文件异常
检查Valpylib下的__init__.py是否存在语法错误,或者是否被意外修改。空的__init__.py是允许的,但如果文件里有语法问题,会导致模块加载失败,此时报错信息可能会误导性地显示“ModuleNotFoundError”。可以临时清空__init__.py内容,或者重命名该文件后测试。Python环境不匹配
打印sys.path的Python环境和执行脚本的环境可能不是同一个。比如你在IDE里用的是虚拟环境,但终端运行用的是系统Python,或者反过来。可以在Random.py里添加print(sys.executable),查看当前Python解释器路径,确认和配置PYTHONPATH的环境一致。缓存干扰
部分IDE会缓存模块信息,或者Python生成的__pycache__文件夹会影响模块识别。可以重启IDE,或者删除项目目录下的__pycache__文件夹后重新运行脚本。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

