安装Django时出错:语法错误

时间:2016-06-08 07:13:30

标签: python django

我做了一些实验,从python 2.6.5升级到python 2.7.11,以便让Django正常工作。然后我不得不卸载python 2.7.11并回到python 2.6.5(与其他项目的兼容性问题)。现在,当我尝试使用pip install django==1.2.1安装django 1.2.1时,我收到此错误:

 C:\workspace\internal\trunk\ut_pr_01\src>pip install django==1.2.1
 Downloading/unpacking django==1.2.1   Running setup.py egg_info for
 package django
     Traceback (most recent call last):
       File "<string>", line 16, in <module>
       File "c:\users\maxim\appdata\local\temp\pip-build\django\setup.py", line
 32, in <module>
         version = __import__('django').get_version()
       File "c:\users\maxim\appdata\local\temp\pip-build\django\django\__init__.py",
 line 3, in <module>
         from django.utils.version import get_version
       File "c:\users\maxim\appdata\local\temp\pip-build\django\django\utils\version.py",
 line 7, in <module>
         from django.utils.lru_cache import lru_cache
       File "c:\users\maxim\appdata\local\temp\pip-build\django\django\utils\lru_cache.py",
 line 28
         fasttypes = {int, str, frozenset, type(None)},
                         ^
     SyntaxError: invalid syntax
     Complete output from command python setup.py egg_info:
     Traceback (most recent call last):

   File "<string>", line 16, in <module>

   File "c:\users\maxim\appdata\local\temp\pip-build\django\setup.py",
 line 32, in <module>

     version = __import__('django').get_version()

   File
 "c:\users\maxim\appdata\local\temp\pip-build\django\django\__init__.py",
 line 3, in <module>

     from django.utils.version import get_version

   File
 "c:\users\maxim\appdata\local\temp\pip-build\django\django\utils\version.py",
 line 7, in <module>

     from django.utils.lru_cache import lru_cache

   File
 "c:\users\maxim\appdata\local\temp\pip-build\django\django\utils\lru_cache.py",
 line 28

     fasttypes = {int, str, frozenset, type(None)},

                     ^

 SyntaxError: invalid syntax

 ---------------------------------------- Command python setup.py egg_info failed with error code 1 in
 c:\users\maxim\appdata\local\temp\pip-build\django Storing complete
 log in C:\Users\Maxim\pip\pip.log

似乎python的版本是导致问题的原因,但之前我安装了任何具有相同pip和相同python版本的django。

目前我的环境: 点1.2.1, python 2.6.5, windows 10 64bit,需要django版本:1.2.1

有想法的人吗?

3 个答案:

答案 0 :(得分:2)

Python 2.6没有设置文字。

 # in python 2.6 only this will work
 fasttypes = set(int, str, frozenset, type(None))

 # in python 2.7+ this will work as well
 fasttypes = {int, str, frozenset, type(None)}

您使用的Django版本与python 2.6.5不兼容

在Django 1.7中删除了对Python 2.6的支持,因此当您尝试安装Django 1.2.1时,我不确定为什么会出现此错误。也许更新的版本驻留在temp\pip-build\目录中。由于它被称为temp,因此删除该目录应该是安全的。

无论如何,Python 2.6和相应的Django版本都是不安全且不受支持的。我强烈建议使用当前版本。如果其他项目需要旧的弃用Python版本,则应使用虚拟环境隔离它们。

答案 1 :(得分:2)

您可以在Windows上安装多个版本的Python(您似乎正在使用它),没有任何问题。您只需确保为您的情况正确设置默认版本的Python。

不要使用极其过时的django版本,而是安装最新版本的Python - 只需从安装程序中选择不同的路径即可。因此,不是C:\Python27而是将其设置为C:\Python-27或其他任何内容。

如果您正在安装Python 3,那么您不必更改路径,因为Python 3会在C:\Program Files(Windows中程序的默认位置)中自行安装,因此不会与Python 2发生冲突。直接安装到C:\驱动器上。

一旦安装了Python的更新版本,您只需确保在需要安装django时调用该版本的Python。要有效地执行此操作,请使用Python virtual environment

让我们假设您已在C:\Python-27中安装了最新版本的Python 2,以下是如何安装最新版本的django:

首先,您需要安装virtualenv包。打开命令提示符,然后键入以下内容(>是提示符,不要键入):

> C:\Python-27\Scripts\pip.exe install virtualenv

几分钟后你应该安装virtualenv,下一步是在新的虚拟环境中安装django:

> C:\Python-27\Scripts\virtualenv.exe C:\%USER%\Desktop\django-env

完成后,您需要激活环境,然后安装django:

> C:\%USER%\Desktop\django-env\bin\activate.bat
(django-env) > pip install django

现在,您已在Python的更新版本上安装了最新版本的django。

管理这些环境可能很困难;所以我建议下载一个Python IDE。 PyCharm是我使用的,有一个免费的社区版本。它可以让您轻松管理所有不同版本的Python。

答案 2 :(得分:0)

通过安装我需要的Django版本解决了这个问题 - 1.2.1不使用pip而是下载文件并手动运行: new CountDownTimer(12000, 2000) { int counter = 0; public void onTick(long millisUntilFinished) { switch (counter) { case 0: tv1.setText(""); break; case 1: tv2.setText(""); break; // ... } counter++; } public void onFinish() { } }.start();