Django 1.9安装SyntaxError: invalid syntax

13

我正在尝试在启用virtualenv的Ubuntu Box(14.04 LTS)中安装Django 1.9,但我遇到了这个奇怪的安装问题。

(venv)nix1947$ pip install django
Downloading/unpacking django
  Downloading Django-1.9-py2.py3-none-any.whl (6.6MB): 6.6MB downloaded
Installing collected packages: django
*** Error compiling '/home/nix1947/projects/newsportal/venv/build/django/django/conf/app_template/apps.py'...
  File "/home/nix1947/projects/newsportal/venv/build/django/django/conf/app_template/apps.py", line 4
    class {{ camel_case_app_name }}Config(AppConfig):
          ^
SyntaxError: invalid syntax

*** Error compiling '/home/nix1947/projects/newsportal/venv/build/django/django/conf/app_template/models.py'...
  File "/home/nix1947/projects/newsportal/venv/build/django/django/conf/app_template/models.py", line 1
    {{ unicode_literals }}from django.db import models
                             ^
SyntaxError: invalid syntax

Successfully installed django
Cleaning up...

这是Django源代码中的问题吗?还是我漏掉了什么?

我使用的是虚拟环境中启用的python3,命令是virtualenv -p /usr/bin/python3 venv,我正在使用的pip版本是

pip 1.5.4 from /home/nix1947/projects/newsportal/venv/lib/python3.4/site-packages (python 3.4)

虚拟环境版本为

(venv)nix1947$ virtualenv --version
1.11.4

有什么问题,能有人指导我吗?

1个回答

23
这是一个常见问题,由于setuptools(5.5.x)版本过旧引起:

When installing Django 1.9+ with setuptools 5.5.x, you’ll see:

Compiling django/conf/app_template/apps.py ...   File
"django/conf/app_template/apps.py", line 4
    class {{ camel_case_app_name }}Config(AppConfig):
          ^ SyntaxError: invalid syntax

Compiling django/conf/app_template/models.py ...   File
"django/conf/app_template/models.py", line 1
    {{ unicode_literals }}from django.db import models
                             ^ SyntaxError: invalid syntax

It’s safe to ignore these errors (Django will still install just fine), but you can avoid them by upgrading setuptools to a more recent version. If you’re using pip, you can upgrade pip using pip install -U pip which will also upgrade setuptools.

(Source: https://docs.djangoproject.com/en/1.9/releases/1.9/#syntaxerror-when-installing-django-setuptools-5-5-x)


解决方法是先升级pip(这也会升级setuptools),然后再次安装django:
pip install -U pip
pip install django

如果我需要创建另一个virtualenv,那么每次都应该升级pip,这样更好。所以最好升级系统中的pip并在虚拟环境中安装django。 - shining
你可以选择执行该操作或者忽略这些错误(根据我提供的链接,忽略它们是安全的)。 - Leistungsabfall
好的,我应该在这个项目中忽略那些错误。当我创建另一个虚拟环境时,我会考虑升级pip。但是我已经使用“sudo apt-get upgrade python-pip”将升级应用到了系统pip上,希望这能解决所有虚拟环境的问题,这样我就不需要为每个虚拟环境运行“pip install -U pip”了。 - shining

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接