Traceback while running 'sudo python3 manage.py migrate'

Я использовал windows os для разработки. Я очень слабо разбираюсь в командах в linux. Я пытаюсь развернуть приложение django на AWS EC2, но застрял при попытке миграции в базу данных. Я выполнил команду: sudo python3 manage.py migrate, но продолжаю получать следующую ошибку.

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    main()
  File "manage.py", line 11, in main
    from django.core.management import execute_from_command_line
  File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 13, in <module>
    from django.apps import apps
  File "/usr/local/lib/python3.5/dist-packages/django/apps/__init__.py", line 1, in <module>
    from .config import AppConfig
  File "/usr/local/lib/python3.5/dist-packages/django/apps/config.py", line 7, in <module>
    from django.utils.deprecation import RemovedInDjango41Warning
  File "/usr/local/lib/python3.5/dist-packages/django/utils/deprecation.py", line 5, in <module>
    from asgiref.sync import sync_to_async
  File "/usr/local/lib/python3.5/dist-packages/asgiref/sync.py", line 114
    launch_map: "Dict[asyncio.Task[object], threading.Thread]" = {}
              ^
SyntaxError: invalid syntax

Во время разработки на windows os, всякий раз, когда я запускаю python manage.py migrate на том же проекте, все работает хорошо. Но когда я клонирую его с github, я не могу перенести его с помощью команды linux ubuntu. Пожалуйста, как мне решить эту проблему?

asgiref требует Python 3.6 или новее, но в вашей установке Ubuntu Linux установлен Python 3.5. В проекте используется синтаксис, недоступный в 3.5.

Вы хотите проверить, какая версия Python нужна вашему проекту (попробуйте запустить пакет python3 -V), then install that version onto your Linux machine (in addition to the standard python3`). Вы можете сделать это с помощью deadsnakes PPA. Например, для установки Python 3.9:

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.9 python3-pip

Оттуда используйте sudo python3.9 .... Помните, что вам нужно будет снова установить требования проекта. Если вы использовали virtualenv, вам нужно будет обновить его:

$ python3.9 -m venv --upgrade [your venv path]

Релизы Django 3.x все работают с Python от 3.6 до 3.9, но ваш проект может иметь другие зависимости, которые сужают этот список.

Вернуться на верх