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

Python App Engine调用Endpoints工具时出现ImportError: cannot import name OSRNG

解决Google Cloud Endpoints生成OpenApi配置时的Crypto.Random导入错误

我之前跟着Google Cloud Endpoints教程操作时,也碰到过一模一样的问题!这本质是pycrypto库的版本或安装问题导致的——Endpoints工具依赖的旧版pycrypto模块结构,和现在常用的替代库pycryptodome不太匹配。给你几个可行的解决办法:

  • 优先方案:重新安装指定版本的pycrypto
    这个版本的pycrypto正好适配Endpoints工具的导入逻辑,操作步骤如下:

    1. 先卸载可能冲突的相关库:
      pip uninstall -y pycrypto pycryptodome
      
    2. 安装2.6.1版本的pycrypto:
      pip install pycrypto==2.6.1
      

    这个版本里,Crypto.Random.OSRNG是一个包含__init__.py的文件夹模块,旧的导入语句from Crypto.Random import OSRNG能正常工作,因为文件夹内的__init__.py会自动导出模块内容。

  • 验证安装是否成功
    打开Python交互环境,输入以下代码测试:

    from Crypto.Random import OSRNG
    print(OSRNG)
    

    如果没有抛出导入错误,就可以重新运行Endpoints生成OpenApi配置的命令了。

  • 备选方案:临时修改导入语句(不推荐)
    如果你因为系统环境限制没法安装指定版本的pycrypto,可以临时修改lib/Crypto/Random/__init__.py里的导入语句:
    将原来的:

    from Crypto.Random import OSRNG
    

    修改为:

    from Crypto.Random.OSRNG import *
    

    不过这个方法需要改动第三方库的源码,后续更新库时可能会被覆盖,所以只是应急用的办法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:59:44