SyntaxError:生成器表达式必须加括号

时间:2018-07-10 12:56:39

标签: python django

我刚刚安装了django,安装后我创建了一个django项目,并试图通过以下命令运行django服务器:

python manage.py runserver

在那之后,我得到如下错误: SyntaxError:生成器表达式必须加括号

error screenshot

9 个答案:

答案 0 :(得分:25)

TL; DR将Django更新到最新版本。


此错误is a known incompatibilityPython issue #32012有关。从python 3.7开始时,基于Django 1.11.16及更低版本的项目将引发此异常。此问题的has been merged into Django 2.0 and 2.1 branchesDjango 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

的方式
  • $ pip3 install django == 2.0
  • $ python3 manage.py runserver

答案 3 :(得分:0)

这是由于版本不兼容所致。我们只需要将Django版本升级到2.1。 在cmd:Pip install django == 2.1中运行命令。这样可以解决问题

答案 4 :(得分:0)

  1. 安装此版本:pip install django==1.11.17
  2. 运行cmd。
  3. 转到您的项目文件夹。
  4. python manage.py runserver
  5. 它将提供服务器的URL,您一切顺利。

答案 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())