Django项目实践-Crypto库

在Django项目中使用Crypto库时遇到了DLL加载失败的问题,经过排查,问题与系统安装的pycrypto路径有关。在Linux环境中通过删除本地模块并使用系统库解决了问题,但在Windows环境下,需要卸载并重新安装pycrypto,处理了distutils安装项目无法卸载的错误,添加VC环境变量,安装特定版本的pycrypto才成功解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:
由于公司接口有加密解密,自定义接口脚本需要调取Crypto模块,之前用的是php调用python脚本实现的结构体,过于繁琐,打算搭建Django框架实现

问题一:

但是搭建后发现调用Crypto模块经常会报错,主要报错是:
from Crypto.Cipher import _AES
ImportError: DLL load failed: 找不到指定的模块。
这个问题困扰了我很久,原来代码目录
在这里插入图片描述

1、一直认为引用这个模块使用的是目录调用,然后验证路径调用是否正确,怎么验证也没发现什么毛病
2、文件里引用当前目录的_AES,最开始以为是AES.py文件本身(单下划线私有变量);后来知道.pyd文件实际上就是个库文件(DLL),才转移到是引用的_ASE.pyd,但是也没有找出找不到它的理由
在这里插入图片描述
解决:
后来尝试在原来PHP框架里删除该引用文件,发现依旧可用,于是明确一点:该实现并不依赖该路径,而是与系统安装的pycrypto路径文件有关,但是wondows本地一直有问题,于是直接从当前正在使用PHP linux服务器上调试。做法:删除本地目录(直接用系统的,经之前项目验证系统的没问题,可以用),然后启动Django服务就不报错了,后来又调试了下报错都是些其他的问题了,困扰我两周的问题终于终于落幕了,可以收下心做正事了~~

问题2:

虽然在linux上的这个问题莫名其妙的解决了,但是在台式机win7(py3.7)系统上还是有问题,使用django框架吊起来没有问题,但是直接执行python脚本还是会报一样的错误。忍了一段时间后终于忍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值