为什么我的Django应用程序在Azure上使用UUID无效语法失败
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我的Django应用程序在Azure上使用UUID无效语法失败相关的知识,希望对你有一定的参考价值。
我的Django应用程序在使用Python 3.8.2和Django 3.0.5的macOS Catalina上可以在本地良好运行。我从Github选择Python 3.8将其作为WebApp部署到Azure。我已配置了Postgres DB,存储帐户和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文件并重新部署。这解决了问题。
这是python-2.x语法。在python-2.x中,有两种类型的整数值:int
和long
。 long
在结尾处带有L
后缀。 int
的范围是固定的,long
的范围是任意的:只要有足够的内存,它就可以表示数字。]
可以用L
后缀指定这是long
,而不是int
。例如在python-2.x中,可以写:
>>> type(1) <type 'int'> >>> type(1L) <type 'long'>
在python-3.x中,两个合并为
int
,并且int
可以表示任意大数,因此不再需要这样的后缀。因此,您正在使用为python-2.x设计的库,该库带有解释python-3.x的解释器。
我建议不要使用此(此版本)库。查看是否有python-3.x的发行版,或尝试查找替代版本。自2020年1月1日起不再支持python-2.x,因此继续开发python-2.x也不是一个好主意。此外,python-2.x和python-3.x在相当多的区域中有所不同。它不仅是一种“扩展”语言。例如map
和filter
的工作方式是不同的。因此,您最好不要尝试“解决”此问题,因为很可能会弹出一个新的问题,甚至更糟的是,它隐藏在雷达下。
从头开始重建虚拟环境,重新生成requirements.txt文件,然后重新部署解决了该问题。
以上是关于为什么我的Django应用程序在Azure上使用UUID无效语法失败的主要内容,如果未能解决你的问题,请参考以下文章
Azure 上的 Django 应用错误地从 Azure Blob 加载静态文件
在 azure 上使用 Angular 应用程序部署 Web API2.0