金天牛

导航

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 程序退出后失效。

posted on 2022-06-24 18:52  金天牛  阅读(1594)  评论(0编辑  收藏  举报