Почему мое приложение Django не работает на Azure с недопустимым синтаксисом UUID - PullRequest
1 голос
/ 05 мая 2020

My Django Приложение отлично работает локально на macOS Catalina с Python 3.8.2 и Django 3.0.5. Я развертываю его в Azure как WebApp из Github, выбирая Python 3.8. Я подготовил базу данных Postgres, учетную запись хранения и веб-приложение. Процесс сборки прошел успешно. WebApp выходит из строя при запуске с:

File "/antenv/lib/python3.8/site-packages/django/db/models/fields/__init__.py", line 6, in <module>
     import uuid
File "/antenv/lib/python3.8/site-packages/uuid.py", line 138
     if not 0 <= time_low < 1<<32L:
                                 ^
SyntaxError: invalid syntax

Я убедился, что пакет uuid не входит в мой файл requirements.txt. Настроены переменные среды БД. Collectstati c успешно реплицировал мои данные stati c. WebApp работает с Docker.

Любая помощь по этому поводу приветствуется.

EDIT

Восстановленная виртуальная среда и восстановленный файл requirements.txt и передислоцирован. Это решило проблему.

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Восстановление виртуальной среды с нуля, восстановление файла requirements.txt и последующее развертывание устранили проблему.

0 голосов
/ 05 мая 2020

Это синтаксис . В было два типа целочисленных значений: int и long. long имеет суффикс L в конце. int имеет фиксированный диапазон, long имеет произвольный диапазон: он может представлять числа, пока имеется достаточно памяти.

Можно указать с суффиксом L, что это long, а не int. Например, в можно написать:

>>> type(1)
<type 'int'>
>>> type(1L)
<type 'long'>

В , два слились вместе в int и int могут представлять произвольные большие числа, поэтому в таком суффиксе больше нет необходимости. Таким образом, вы используете библиотеку, предназначенную для с интерпретатором, который интерпретирует .

Я бы не советовал использовать эту (версию этой) библиотеки. Посмотрите, есть ли релиз для , или попробуйте найти альтернативу. больше не поддерживается с 1 января 2020 г., поэтому продолжать разработку на тоже не рекомендуется. Кроме того, и отличаются довольно большим количеством областей. Это не просто «расширенный» язык. Например, работа map и filter отличается. Поэтому вам лучше не пытаться «исправить» эту проблему, поскольку, скорее всего, появится новая проблема или, что еще хуже, она будет скрыта под радаром.

...