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, но ваш проект может иметь другие зависимости, которые сужают этот список.