OnmyojiAutoScript中百鬼夜行任务运行失败的解决方案
问题现象
在使用OnmyojiAutoScript(OAS)运行百鬼夜行任务时,用户遇到了模块导入错误。具体表现为系统提示"ModuleNotFoundError: No module named 'cryptography.hazmat.primitives.hmac'"的错误信息,导致任务无法正常启动。
问题分析
通过错误日志分析,我们可以看出问题出在Python加密库cryptography的导入过程中。具体表现为:
- 系统尝试从cryptography.hazmat.primitives导入HMAC模块时失败
- 错误发生在加载百鬼夜行任务脚本的过程中
- 问题根源在于cryptography库的版本兼容性问题
解决方案
检查当前安装的cryptography版本
首先需要确认当前环境中安装的cryptography库版本。可以通过以下命令查看:
python -m pip list
或者直接查看cryptography的版本信息:
python -m pip show cryptography
降级cryptography库
如果发现安装的是较新版本的cryptography(如43.0.0),建议降级到兼容版本42.0.7。执行以下命令:
- 先卸载当前版本:
python -m pip uninstall cryptography
- 安装指定版本:
python -m pip install cryptography==42.0.7
验证解决方案
安装完成后,可以再次运行OAS并尝试启动百鬼夜行任务,确认问题是否解决。同时建议检查以下目录结构是否完整:
toolkit\Lib\site-packages\cryptography\hazmat\primitives\
该目录下应包含hmac.py等相关模块文件。
预防措施
为避免类似问题再次发生,建议:
- 定期检查OAS项目的依赖库版本要求
- 在更新Python库时注意版本兼容性
- 使用虚拟环境隔离项目依赖
- 关注OAS项目的更新公告,及时获取兼容性信息
总结
Python依赖库的版本管理是自动化脚本运行中的重要环节。通过合理控制库版本,可以避免大多数兼容性问题。对于OAS用户来说,遇到类似模块导入错误时,首先应考虑依赖库版本是否匹配项目要求,必要时进行版本调整即可解决问题。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



