Невозможно импортировать имя '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
Вернуться на верх