Django配置websocket时的错误解决

基于移动群智感知的网络图谱构建系统需要手机app不断上传数据到服务器并把数据推到前端标记在百度地图上,由于众多手机向同一服务器发送数据,如果使用长轮询,则实时性差、延迟高且服务器的负载过大,而使用websocket则有更好的性能。

Django配置websocket的文章网络上有很多,可以参考:

1Django中使用WebSocket(channels)_django使用ws-CSDN博客文章浏览阅读356次。下载channels库和daphne库。_django使用wshttps://blog.csdn.net/qq_46042132/article/details/130994781

239.Django 实现WebSocket - cloud_wh - 博客园 (cnblogs.com)https://www.cnblogs.com/qingtianyu2015/p/17196676.html3【踩坑指南】Django+channels WebSocket配置_starting asgi/daphne version 4.0.0 development ser-CSDN博客https://blog.csdn.net/qq_25218219/article/details/131752459

414-9 django中配置channels_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18U4y1Y7Do?p=9&vd_source=c71b91500f94df06bc5d49825b8d6d17

然而我配置完后,运行报了这样的错误:

我的代码配置都没有问题,所以我怀疑是python、Django、channels、daphne之间的兼容性发生了问题,我重新安装了django、channels、daphne,但是还是报了相同的错误。

把错误问了chatgpt,说是缺少Cryptography库的Rust扩展导致的。Cryptography库用于处理加密和密码学相关的操作。我重新卸载安装了Cryptography,在安装时报了这样一个错误:

复制代码
Installing collected packages: cryptography
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
pyopenssl 23.0.0 requires cryptography<40,>=38.0.0, but you have cryptography 42.0.1 which is incompatible.
Successfully installed cryptography-42.0.1

原因是安装的cryptography版本(42.0.1)与pyopenssl库的要求存在冲突,pyopenssl要求的cryptography版本应小于40,并且大于等于38。

我安装的是42.0.1版本,所以发生错误,我又把cryptography换成39.0.1版本,再次运行,websocket配置成功:

相关推荐
The Straggling Crow2 小时前
Network
网络
yyuuuzz3 小时前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
Oll Correct5 小时前
实验二十九:TCP的运输连接管理
网络·笔记
Cheng小攸8 小时前
综合实验2
网络·windows
Soari8 小时前
SSH 主机密钥冲突
运维·网络·ssh
且听风吟_xincell9 小时前
用 TypeScript 从零写一个 TCP 聊天室(上)—— 网络编程入门实战
网络·tcp/ip·typescript
TickDB11 小时前
智谱GLM-4 接金融数据:工具描述多写三个字,模型少犯一类错
人工智能·python·websocket·行情数据 api·行情 api
学代码的真由酱11 小时前
WebSocket背景知识及简单实现-Java
java·websocket
万法若空11 小时前
Libevent C语言开发完全教程:从入门到实战
c语言·网络
鹿鸣天涯11 小时前
kali 2026.1 vmware虚拟机内看不见鼠标处理方法
网络·计算机外设