Невозможно импортировать имя 'Channel' из 'channels'
Я использую python версии==3.8.10 и Django==2.2 и channels==3.0.4 . Я получаю ошибку
from channels import Channel ImportError: cannot import name 'Channel' from 'channels' (/home/kritik/py38_djanngo2.2_new/lib/python3.8/site-packages/channels/init.py)
Вот как выглядит мой код
from channels import Channel
class TestWebSocket(APIView):
def post(self, format=None):
try:
REPLY_CHANNEL = self.request.data['request_channel']
# job = Job(
# name= new_data[0]['change_type'],
# status="COS initiation has started. Please be patient.",
# )
# job.save()
# Tell client task has been started
Channel(REPLY_CHANNEL).send({
"text": json.dumps({
"action": "started",
})
})
return Response({"Success": "Sucess"}, status=status.HTTP_200_OK)
except Exception as e:
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
Может ли кто-нибудь помочь мне в этом?
Я столкнулся с той же ошибкой при использовании модульных тестов.
# Chat/tests.py
from channels import Channel
from channels.test import ChannelTestCase
class MyTests(ChannelTestCase):
def test_a_thing(self):
# This goes onto an in-memory channel, not the real backend.
Channel("some-channel-name").send({"foo": "bar"})
Я следую этому руководству из документации Django: https://channels.readthedocs.io/en/1.x/testing.html
По какой-то причине пакет channels не распознается. Я установил каналы в моем виртуальном env с помощью следующей команды:
python -m pip install -U channels