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

PyInstaller打包oracledb脚本报错:No module named 'secrets'求助

解决PyInstaller打包oracledb脚本时的secrets模块缺失问题

核心原因

secrets是Python 3.6+内置模块,但PyInstaller打包时可能未自动识别oracledb对它的依赖;同时多Python版本共存环境下,可能存在PyInstaller关联版本不匹配的情况。

解决方法

1. 显式指定打包时包含secrets模块

修改打包命令,通过--hidden-import参数强制加入缺失模块:

python3 -m PyInstaller -F --hidden-import secrets my_script.py

2. 确认PyInstaller归属Python3.6环境

多版本共存时,若PyInstaller关联的是Python2.7,会导致无法正确处理Python3.6的内置模块,需重新安装对应版本的PyInstaller:

  • 卸载现有PyInstaller:
pip uninstall -y PyInstaller
pip3 uninstall -y PyInstaller
  • 用Python3.6的pip重新安装:
python3.6 -m pip install PyInstaller
  • 使用该版本打包:
python3.6 -m PyInstaller -F --hidden-import secrets my_script.py

3. 检查oracledb版本兼容性

确保安装的oracledb版本支持Python3.6.8,可安装已知兼容版本:

python3.6 -m pip install oracledb==1.2.2

4. 通过.spec文件手动配置依赖

若上述方法无效,可生成.spec文件后手动添加依赖:

  • 生成.spec文件:
python3.6 -m PyInstaller -F my_script.py
  • 打开my_script.spec,找到hiddenimports项并添加'secrets':
hiddenimports=['secrets'],
  • 用.spec文件重新打包:
python3.6 -m PyInstaller my_script.spec

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:42:52