服务器运行py ModuleNotFoundError: No module named ‘****‘

在 pycharm 上运行的好好的,但是到服务器就出现了问题

首先,在服务器上确认一下你当前的需要导入的数据和导入的第三方包是否在服务器当前的路径下

如果不在,那么就会报错。

ModuleNotFoundError: No module named 'scr'

from B import C  # 绝对导入
from . import D  # 相对导入
from ..E import F  # 相对导入

Python 解释器对于绝对导入的处理是从当前目录、sys.path、环境变量 PYTHONPATH 中搜索需要导入的包。如果使用绝对导入出现问题需要考虑是否可以从这些目录中找到相应的包

solution:

import sys
sys.path.append('你的项目目录')
from B import C
import sys
import os
sys.path.append(os.path.dirname(os.path.realpath(__file__)))
# os.path.realpath(__file__)表示当前文件的路径,加上os.path.dirname就是当前文件的上一级目录路径
# 套多少个dirname()取决于当前文件在你的项目目录中的深度有多少。
# 注意不要把realpath写成relpath!
from B import A

按照 PEP8 的标准,建议使用绝对导入,例如from A.B import C(从顶级包开始,A 就是这里的顶级包,也就是最外层的含有 __init__.py 的目录)。但是相对导入也是被允许的,出于以下考虑:

  1. 项目目录较深时,绝对导入会产生冗长的导入语句;
  2. 对顶层包名修改时,就要在每个绝对导入语句中相应修改包名,这是件令人头疼的事。

ImportError: No module named *** 问题?——理解绝对导入和相对导入 | Levy's Blog

服务器运行代码出现 ModuleNotFoundError:No module named 'xxx' - 文渊博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值