为什么我的 Django 应用程序在 Azure 上失败且 UUID 语法无效

Why is my Django App failing on Azure with UUID invalid syntax

我的 Django 应用程序在 Python 3.8.2 和 Django 3.0.5 的 macOS Catalina 上本地运行良好。我将它作为 WebApp 从 Github 选择 Python 3.8 部署到 Azure。 我已经配置了 Postgres 数据库、存储帐户和 WebApp。构建过程成功。 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 文件中。 数据库环境变量已设置。 Collectstatic 成功复制了我的静态数据。 WebApp 是 运行 Docker.

非常感谢任何帮助。

编辑

重建虚拟环境并重新生成 requirements.txt 文件并重新部署。这解决了问题。

这是 syntax. In 有两种类型的整数值:intlonglong 最后有一个 L 后缀。 int是固定范围,long是任意范围:只要有足够的内存,它就可以表示数字。

可以使用 L 后缀指定这是 long,而不是 int。例如在中,可以这样写:

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

中,两者合并为int,一个int可以表示任意大数字,所以不再需要这样的后缀。因此,您正在使用为 设计的库和解释 .

的解释器

我建议不要使用这个(这个版本)库。查看是否有 的版本,或者尝试寻找替代方案。 自 2020 年 1 月 1 日起不再受支持,因此继续在 上开发也不是一个好主意。此外 在很多方面都有所不同。它不仅仅是一种 "extended" 语言。例如,mapfilter 的工作方式是不同的。因此,您最好不要尝试 "fix" 这个问题,因为很可能会弹出一个新问题,或者更糟的是,隐藏在雷达之下。

从头开始重建虚拟环境,重新生成 requirements.txt 文件,然后重新部署解决了问题。