49

I just installed django and after installing that I created a django project and was trying to run django server by command:

python manage.py runserver

After that I'am getting error as: SyntaxError: Generator expression must be parenthesized

error screenshot

Antwane
  • 20,760
  • 7
  • 51
  • 84
sagar
  • 503
  • 1
  • 4
  • 4

8 Answers8

94

TL; DR: Upgrade Django to version 1.11.17+ or 2.0+


This error is a known incompatibility related to Python issue #32012. Projects based on Django 1.11.16 and below will raise this exception when started with Python 3.7. A patch for this issue has been merged into Django 2.0 and 2.1 branches and cherry-picked later into Django 1.11.17.

Note: Python 3.7 is officially supported by Django 1.11.17 and above, including any 2.x branch.

Antwane
  • 20,760
  • 7
  • 51
  • 84
25

Generator expression must be parenthesized

> Update Django version to 1.11.17

pip install django==1.11.17
2

Had same issue. This is how I changed to django version 2.0 and used python3

  • $pip3 install django==2.0
  • $python3 manage.py runserver
Tess
  • 21
  • 2
2
  1. Install this version: pip install django==1.11.17
  2. Run cmd.
  3. go to your project folder.
  4. python manage.py runserver
  5. it will give a URL for server and you are good to go.
Azametzin
  • 5,223
  • 12
  • 28
  • 46
amit Kumar
  • 21
  • 1
0

This is due to the version incompatibility.Just we need to upgrade the Django version to 2.1. Run the command in cmd:Pip install django==2.1. this will resolve the issue

0

I just faced an Error like this. I was using Django-1.11.10. I deleted it and installed Django 2.0

Problem is solved.

But if you are using ForeignKey in you model.py files it must be problem again. You should update your coding to 2.0 versiong insted of older versiyon.

Example:

django older version

user = models.ForeignKey('auth.User', related_name='posts')

django 2.0

user = models.ForeignKey('auth.User', related_name='posts', on_delete=models.CASCADE,)
0

I had the same issue and I realized it is due to the compatibility of the Django version I was working with. So I had to state the Python version explicitly like this: >python3.6 manage.py runserver

-1

Just open file: venv/lib/python3.7/site-packages/django/contrib/admin/widgets.py and replace the lines

related_url += '?' + '&'.join(
    '%s=%s' % (k, v) for k, v in params.items(),)

with

related_url += '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items())
elarcoiris
  • 1,914
  • 4
  • 28
  • 30
CAP.tech
  • 79
  • 8
  • it work for me i upgrade my django project to 1.11 and i try to makemigrations and it give this errors and i try to change the code in to the one above and i try to migrate again and it work for so try it. – CAP.tech Sep 04 '19 at 08:16
  • 7
    This is a really bad idea -- you're changing core Django code, and now have to guarantee that your "custom" copy of Django is installed wherever your site is installed. – Lorraine Oct 13 '19 at 13:29