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

安装python-binance后Python脚本随机卡在cryptography导入阶段求助

解决cryptography模块导入随机卡顿的问题

根据你描述的情况,这个卡顿问题大概率和cryptography库的scrypt模块导入时的底层操作有关,结合你的环境和已经排查过的点,给你几个针对性的解决方案:

1. 检查并补充系统熵池(最可能的根因)

Ubuntu 18.04的虚拟机或云服务器经常会遇到系统熵池不足的问题:cryptography的scrypt模块在初始化时需要高质量的随机数,当系统熵池耗尽时,getrandom()调用会阻塞,直到有足够的熵生成——这就会导致你看到的几分钟卡顿(此时CPU使用率低是因为进程在等待熵,而非进行计算)。

解决步骤:

  • 安装rng-tools工具补充熵池:
    sudo apt update && sudo apt install rng-tools
    
  • 启动并设置开机自启:
    sudo systemctl start rng-tools
    sudo systemctl enable rng-tools
    
  • 验证熵池状态(正常数值应在1000以上):
    cat /proc/sys/kernel/random/entropy_avail
    

2. 升级老旧的依赖版本

你使用的python-binance==0.7.1是2019年的旧版本,对应的cryptography版本必然也比较陈旧,旧版本的cryptography在导入scrypt模块时可能存在阻塞类的bug。

解决步骤:

  • 先卸载旧版本依赖:
    pip3 uninstall -y python-binance cryptography
    
  • 安装最新兼容版本:
    pip3 install python-binance cryptography --upgrade
    
    新版本的cryptography优化了导入流程,修复了不少底层阻塞问题。

3. 确保cryptography安装了编译后的C扩展

从你的调试日志能看到,Python先尝试加载.so格式的编译扩展,失败后才使用纯Python版本的scrypt.py——纯Python版本不仅运行效率低,还可能在并发场景下出现阻塞。

解决步骤:

  • 安装编译cryptography所需的系统依赖:
    sudo apt install build-essential libssl-dev libffi-dev python3-dev
    
  • 强制从源码编译安装cryptography:
    pip3 install cryptography --force-reinstall --no-binary cryptography
    
    这会生成对应的.so扩展文件,确保导入时使用高效的编译版本。

4. 错开crontab脚本的执行时机

你有多个脚本每分钟同时启动,可能导致多个进程同时竞争导入cryptography的资源(比如文件锁)。可以给每个脚本添加几秒延迟,避免并发启动:

比如把原来的* * * * * python3 /path/to/script.py改成:

* * * * * sleep 2 && python3 /path/to/script1.py
* * * * * sleep 5 && python3 /path/to/script2.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:45:14