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实现探测socket和web服务示例
Mar 28 Python
Python socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
numpy中索引和切片详解
Dec 15 Python
深入分析python数据挖掘 Json结构分析
Apr 21 Python
Python模块的加载讲解
Jan 15 Python
python批量爬取下载抖音视频
Jun 17 Python
Python使用matplotlib 画矩形的三种方式分析
Oct 31 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
Jun 18 Python
Python应用实现处理excel数据过程解析
Jun 19 Python
详解Pandas 处理缺失值指令大全
Jul 30 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
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
js加强的经典分页实例
2013/03/15 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
jQuery回调方法使用示例
2017/06/26 jQuery
jQuery实现的事件绑定功能基本示例
2017/10/11 jQuery
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
python采用requests库模拟登录和抓取数据的简单示例
2014/07/05 Python
python中的多线程实例教程
2014/08/27 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
python实现感知器
2017/12/19 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
python中sort sorted reverse reversed函数的区别说明
2020/05/11 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
农行实习自我鉴定
2013/09/22 职场文书
信息系统专业个人求职信范文
2013/12/07 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
公司联欢会策划方案
2014/05/19 职场文书
文艺演出策划方案
2014/06/07 职场文书
校园新闻稿范文
2015/07/18 职场文书
实验心得体会范文
2016/01/25 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
Pytorch可视化的几种实现方法
2021/06/10 Python
KVM基础命令详解
2022/04/30 Servers