我正在尝试遵循this basic django channels tutorial,并且已经有了一个很好的开始。我能够成功连接到我的websocket,并且我的使用者在收到消息时可以正确地回显到前端。
本教程的下一部分将重点放在使用channels_redis
上,以允许多个通道都接收相同的消息,以便不同的客户端实例可以通过websocket相互通信。
在本教程中,他们说要运行
pip3 install channels_redis
,如果失败,他们不会详细说明或提供任何故障排除。
当我在Windows计算机(Python 3.7 32位)上运行此命令时,得到以下堆栈跟踪:
Installing collected packages: hiredis, aioredis, channels-redis
Running setup.py install for hiredis ... error
Complete output from command C:\work_repos\WebWorkspace\PersonQueue\venv\Scr
ipts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\o_O\\App
Data\\Local\\Temp\\pip-build-vk3mqeh1\\hiredis\\setup.py';f=getattr(tokenize, 'o
pen', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile
(code, __file__, 'exec'))" install --record C:\Users\o_O\AppData\Local\Temp\pip-
dyn4y_6y-record\install-record.txt --single-version-externally-managed --compile
--install-headers C:\work_repos\WebWorkspace\PersonQueue\venv\include\site\pyth
on3.7\hiredis:
running install
running build
running build_py
creating build
creating build\lib.win32-3.7
creating build\lib.win32-3.7\hiredis
copying hiredis\version.py -> build\lib.win32-3.7\hiredis
copying hiredis\__init__.py -> build\lib.win32-3.7\hiredis
running build_clib
building 'hiredis_for_hiredis_py' library
creating build\temp.win32-3.7
creating build\temp.win32-3.7\vendor
creating build\temp.win32-3.7\vendor\hiredis
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC
\14.15.26726\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Pr
ogram Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.15.26
726\include" /Tcvendor/hiredis/read.c /Fobuild\temp.win32-3.7\vendor/hiredis/rea
d.obj
read.c
vendor/hiredis/read.c(34): fatal error C1083: Cannot open include file: 'str
ing.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Buil
dTools\\VC\\Tools\\MSVC\\14.15.26726\\bin\\HostX86\\x86\\cl.exe' failed with exi
t status 2
这似乎是依赖项hiredis
的问题。在网上搜索时,我发现其他人在Windows上使用hiredis遇到麻烦,但解决方案的方式并不多。
所以我的问题是:是否可以在Windows上使用channels_redis
软件包?我知道Windows显然不能提供最佳的生产部署环境,但是我不打算在Windows服务器上进行部署。在这一点上,我只是尝试遵循基本教程,并构建一个能够进行websocket通信的简单概念验证应用程序。我没有选择在开发计算机上使用Linux的选项,因此我正在专门寻找基于Windows的解决方案。
编辑其他信息: