You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何执行Python脚本时出现ModuleNotFoundError: No module named 'mysql'错误?

问题排查与修复方案

先明确几个关键排查点,再给出优化后的脚本:

核心排查步骤

  • 手动执行./mysqldumpBashScript.sh,确认是否成功生成latestDBBackup.sql,以及文件是否有有效内容——如果备份脚本跑失败,后续的文件操作必然报错。
  • 检查当前用户对latestDBBackup.sql的读写权限,权限不足会直接触发PermissionError。
  • 务必看清楚具体的异常信息(比如是FileNotFoundError、PermissionError还是其他),这是定位问题的核心依据。

脚本优化与修复

你的脚本存在几个潜在问题:导入了未使用的mysql.connector模块、文件操作无异常处理、未检查备份脚本执行结果、未使用安全的文件读写方式。以下是修复后的版本:

#!/usr/bin/python3
import os
import datetime

# 先检查备份脚本执行状态
exit_code = os.system("./mysqldumpBashScript.sh")
if exit_code != 0:
    print(f"备份脚本执行失败,退出码:{exit_code}")
    exit(1)

def search_str(file_path, word): 
    # 用with上下文管理器自动处理文件关闭,避免资源泄漏
    try:
        with open(file_path, 'r') as f:
            filedata = f.read() 
    except FileNotFoundError:
        print(f"错误:找不到文件 {file_path}")
        return
    except PermissionError:
        print(f"错误:无权限读取文件 {file_path}")
        return

    now = datetime.datetime.now().strftime("%w_%m_%Y_%H_%M")
    newdata = filedata.replace(word, f"{word}_{now}")
    
    try:
        with open(file_path, 'w') as f:
            f.write(newdata) 
    except PermissionError:
        print(f"错误:无权限写入文件 {file_path}")
        return
    
    print(f"文件 {file_path} 已成功修改")

search_str('latestDBBackup.sql', 'classicmodels')

优化说明

  • 移除了未使用的mysql.connector相关导入,消除不必要的依赖干扰。
  • 添加备份脚本执行结果检查,避免在备份失败的情况下执行后续操作。
  • 使用with语句管理文件,确保文件自动关闭,避免资源泄漏。
  • 增加常见异常捕获与提示,方便快速定位问题。
  • 用f-string简化字符串拼接,提升代码可读性。

内容的提问来源于stack exchange,提问作者Spyro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:00:09