python 服务器运行代码报错ModuleNotFoundError的解决办法


Posted in Python onSeptember 16, 2020

一、问题描述

一段 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 代码报错的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python二叉树遍历的实现方法
Nov 21 Python
以911新闻为例演示Python实现数据可视化的教程
Apr 23 Python
Python+PIL实现支付宝AR红包
Feb 09 Python
用python实现将数组元素按从小到大的顺序排列方法
Jul 02 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
May 15 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 Python
Pandas+Matplotlib 箱式图异常值分析示例
Dec 09 Python
python 普通克里金(Kriging)法的实现
Dec 19 Python
python实现手势识别的示例(入门)
Apr 15 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
python3中确保枚举值代码分析
Dec 02 Python
pycharm2020.2 配置使用的方法详解
Sep 16 #Python
python Matplotlib模块的使用
Sep 16 #Python
Python类成员继承重写的实现
Sep 16 #Python
PyCharm设置注释字体颜色以及是否倾斜的操作
Sep 16 #Python
Python面向对象多态实现原理及代码实例
Sep 16 #Python
Python使用pycharm导入pymysql教程
Sep 16 #Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
Sep 16 #Python
You might like
推荐文章系统(一)
2006/10/09 PHP
cookie.js 加载顺序问题怎么才有效
2013/07/31 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
Python计算一个文件里字数的方法
2015/06/15 Python
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
详解如何在PyCharm控制台中输出彩色文字和背景
2020/08/17 Python
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
如何整合JQuery和Prototype
2014/01/31 面试题
创业计划书中包含的9个方面
2013/12/26 职场文书
幼儿园英语教学反思
2014/01/30 职场文书
信息总监管理职责范本
2014/03/08 职场文书
预备党员承诺书
2014/03/25 职场文书
推广活动策划方案
2014/08/23 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
学生评语集锦
2015/01/04 职场文书
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server
基于angular实现树形二级表格
2021/10/16 Javascript
教你部署vue项目到docker
2022/04/05 Vue.js