一、问题描述
一段 Python 代码在本地的 IDE 上运行正常,部署到服务器运行后,出现了 ModuleNotFoundError: No module named ‘xxx' 错误。
二、问题原因
在代码中引入了其他文件的包(自己写的包,非 pip 安装的),问题出在 import
那行语句。
错误的原因是因为路径的原因,服务器端的路径和我们本地的路径不一样显示。
三、解决示例
要解决这个问题,可以在自己代码的顶端加入以下代码:
import sys import os sys.path.append(os.path.dirname(sys.path[0]))
或者
import sys import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, BASE_DIR)
以上代码可以保证在任何时候都切换到当前执行脚本所在目录中,具体根据自己脚本所在的目录结构进行调整。
四、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 程序退出后失效。
示例:
import sys sys.path.append('..') # 表示导入当前文件的上层目录到搜索路径中 sys.path.append('/home/model') # 绝对路径 from folderA.folderB.fileA import functionA
2. sys.path.insert()
可以定义搜索优先顺序,序号从 0 开始,表示最大优先级,sys.path.insert()
加入的也是临时搜索路径,程序退出后失效。
示例:
import sys sys.path.insert(1, "./model")
以上就是python 服务器运行代码报错ModuleNotFoundError的解决办法的详细内容,更多关于python 代码报错的资料请关注其它相关文章!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 《暗喻幻想》顺风耳作用介绍
- 崔健1985-梦中的倾诉[再版][WAV+CUE]
- 黄子馨《追星Xin的恋人们2》HQ头版限量编号[WAV+CUE]
- 孟庭苇《情人的眼泪》开盘母带[低速原抓WAV+CUE]
- 孙露《谁为我停留HQCD》[低速原抓WAV+CUE][1.1G]
- 孙悦《时光音乐会》纯银CD[低速原抓WAV+CUE][1.1G]
- 任然《渐晚》[FLAC/分轨][72.32MB]
- 英雄联盟新英雄安蓓萨上线了吗 新英雄安蓓萨技能介绍
- 魔兽世界奥杜尔竞速赛什么时候开启 奥杜尔竞速赛开启时间介绍
- 无畏契约CGRS准星代码多少 CGRS准星代码分享一览
- 张靓颖.2012-倾听【少城时代】【WAV+CUE】
- 游鸿明.1999-五月的雪【大宇国际】【WAV+CUE】
- 曹方.2005-遇见我【钛友文化】【WAV+CUE】
- Unity6引擎上线:稳定性提升、CPU性能最高提升4倍
- 人皇Sky今日举行婚礼!电竞传奇步入新篇章