我刚刚安装了django,安装后我创建了一个django项目,并试图通过以下命令运行django服务器:
python manage.py runserver
在那之后,我得到如下错误: SyntaxError:生成器表达式必须加括号
答案 0 :(得分:25)
TL; DR将Django更新到最新版本。
此错误is a known incompatibility与Python issue #32012有关。从python 3.7开始时,基于Django 1.11.16及更低版本的项目将引发此异常。此问题的has been merged into Django 2.0 and 2.1 branches和Django 1.11.17的补丁。
注意:Django 1.11.17及更高版本(包括any 2.x branch)正式支持Python 3.7。
答案 1 :(得分:2)
生成器表达式必须带括号
>将Django版本更新为1.11.17
pip install django==1.11.17
答案 2 :(得分:1)
有同样的问题。这就是我更改为Django 2.0版并使用python3
的方式答案 3 :(得分:0)
这是由于版本不兼容所致。我们只需要将Django版本升级到2.1。 在cmd:Pip install django == 2.1中运行命令。这样可以解决问题
答案 4 :(得分:0)
pip install django==1.11.17
python manage.py runserver
答案 5 :(得分:0)
我只是遇到这样的错误。我正在使用Django-1.11.10。我删除了它并安装了Django 2.0
问题已解决。
但是,如果您在model.py文件中使用ForeignKey,那一定又是问题。您应该将编码更新为由较旧版本安装的2.0版本。
示例:
django旧版本
user = models.ForeignKey('auth.User', related_name='posts')
django 2.0
user = models.ForeignKey('auth.User', related_name='posts', on_delete=models.CASCADE,)
答案 6 :(得分:0)
我遇到了同样的问题,我意识到这是由于我使用的Django版本的兼容性。因此,我必须像这样明确声明Python版本:>python3.6 manage.py runserver
答案 7 :(得分:-3)
只需打开文件:
unsat
并替换行
venv/lib/python3.7/site-packages/django/contrib/admin/widgets.py
使用
related_url += '?' + '&'.join(
'%s=%s' % (k, v) for k, v in params.items(),)
答案 8 :(得分:-4)
只需打开文件venv/lib/python3.7/site-packages/django/contrib/admin/widgets.py
并替换行
related_url += '?' + '&'.join(
'%s=%s' % (k, v) for k, v in params.items(),
)
使用
related_url += '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items())