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 28 Python
Python+tkinter使用80行代码实现一个计算器实例
Jan 16 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
Python设计模式之外观模式实例详解
Jan 17 Python
Python提取频域特征知识点浅析
Mar 04 Python
如何使用python把ppt转换成pdf
Jun 29 Python
Django+zTree构建组织架构树的方法
Aug 21 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 Python
详解Pycharm安装及Django安装配置指南
Sep 15 Python
python 操作excel表格的方法
Dec 05 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 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的ASP防火墙
2006/10/09 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
php 可变函数使用小结
2018/06/12 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
关于JavaScript中的关联数组分析
2013/04/09 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
python 图片二值化处理(处理后为纯黑白的图片)
2019/11/01 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
50岁生日感言
2014/01/23 职场文书
小学生读书感言
2014/02/12 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
Windows 11要来了?微软文档揭示Win11太阳谷 / Win10有两个不同版本
2021/11/21 数码科技
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
2022/02/12 MySQL