LINUX服务器运行Python出现ModuleNotFoundError的解决方案
问题描述:
项目在本地环境运行时,无报错。
但将项目提交至服务器运行时,出现ModuleNotFoundError:No module named 'packageA '错误。
项目场景:
python文件中引用了同文件夹下的另一个python文件作为模块
解决办法:
1、在此文件夹下加入创建__init__.py文件,此文件可以使得Python将packageA视为一个包而不是文件夹
2、在python文件顶端加入以下代码:记得是顶端
import sys
import os
sys.path.append(os.path.dirname(sys.path[0]))
说明:sys.path.append() 和 sys.path.insert()以上代码可以保证在任何时候都切换到当前执行脚本所在目录中,具体根据自己脚本所在的目录结构进行调整。
Python 程序中使用 import xxx 时,Python 解析器会在当前目录、已安装和第三方模块中搜索 xxx,如果都搜索不到就会报错。
sys.path 模块可以动态的修改系统路径,这种方法导入的路径会在 Python 程序退出后失效。
sys.path 本身是个列表,所以在里面添加目录是很容易的,添加完后,新目录即时起效,以后的每次 import 操作都可能会检查这个目录。
1. sys.path.append()
在 sys.path 列表的末尾临时添加搜索路径,方便更简洁的 import 其他包和模块。这种方法导入的路径会在 Python 程序退出后失效。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix