Alo*_*lon 14 redis django-channels
我按照这些说明(即sudo apt-get install redis-server
)在 Windows 10 上的 Ubuntu Linux 子系统中安装了 Redis 版本 4.0.9 。
我在 Django 频道上关注本教程,并运行了以下代码:
>>> import channels.layers
>>> channel_layer = channels.layers.get_channel_layer()
>>> from asgiref.sync import async_to_sync
>>> async_to_sync(channel_layer.send)('test_channel', {'type': 'hello'})
>>> async_to_sync(channel_layer.receive)('test_channel')
Run Code Online (Sandbox Code Playgroud)
执行上面的最后一行时,出现此错误:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Users\xyz\Anaconda3\envs\django\lib\site-packages\asgiref\sync.py", line 120, in __call__
return call_result.result()
File "C:\Users\xyz\Anaconda3\envs\django\lib\concurrent\futures\_base.py", line 425, in result
return self.__get_result()
File "C:\Users\xyz\Anaconda3\envs\django\lib\concurrent\futures\_base.py", line 384, in __get_result
raise self._exception
File "C:\Users\xyz\Anaconda3\envs\django\lib\site-packages\asgiref\sync.py", line 180, in main_wrap
result = await self.awaitable(*args, **kwargs)
File "C:\Users\xyz\Anaconda3\envs\django\lib\site-packages\channels_redis\core.py", line 485, in receive
return (await self.receive_single(channel))[1]
File "C:\Users\xyz\Anaconda3\envs\django\lib\site-packages\channels_redis\core.py", line 508, in receive_single
index, channel_key, timeout=self.brpop_timeout
File "C:\Users\xyz\Anaconda3\envs\django\lib\site-packages\channels_redis\core.py", line 345, in _brpop_with_clean
result = await connection.bzpopmin(channel, timeout=timeout)
aioredis.errors.ReplyError: ERR unknown command 'BZPOPMIN'
Run Code Online (Sandbox Code Playgroud)
在此页面上,有人建议使用 Redis 版本 5。如何在 Windows 10 上安装 Redis 版本 5?关于如何解决这个问题的任何其他想法?
小智 36
我认为问题在于与channels-redis包版本的兼容性!前段时间我已经测试过频道,它与 channels-redis 版本2.4.2配合得很好,最近它们在3.0.1版本中,这个版本不能正常工作,但我不知道为什么。
尝试使用 pip 安装 2.4.2 版本:
pip install channels-redis==2.4.2
Run Code Online (Sandbox Code Playgroud)
suh*_*lvs 10
您需要安装最新版本(6+)redis
:
$ sudo add-apt-repository ppa:redislabs/redis
$ sudo apt-get update
$ sudo apt-get install redis
Run Code Online (Sandbox Code Playgroud)
然后重新启动redis-server
.
Windows 操作系统中没有对 Redis 的官方支持。
然而,微软开发和维护microsoftarchive/redis。它也不再受支持(旧版本可用)。关于在 Windows 10 中安装第 5 版,我进行了长时间的搜索。但没有运气。
更好的是你可以去Memurai。Memurai 与 Redis 协议 100% 兼容(也支持第 5 版)。它可以免费用于开发和测试。
编辑:从 Itamar 评论,你也可以使用它作为 Memurai 的替代品
只需从这里下载适用于 Windows 的最新版本的 Redis https://github.com/tporadowski/redis/releases 即可。
你不需要降级你的channels-redis等版本。Redis的这个问题根本与任何python包无关。
归档时间: |
|
查看次数: |
9353 次 |
最近记录: |