【问题标题】:Error installing Django: syntax error安装 Django 时出错:语法错误
【发布时间】:2016-06-09 20:07:29
【问题描述】:

为了让 Django 正常工作,我做了一些从 python 2.6.5 升级到 python 2.7.11 的实验。然后我不得不卸载 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, 蟒蛇2.6.5, windows 10 64bit,需要django版本:1.2.1

有人有想法吗?

【问题讨论】:

  • 现在你遇到了与 Django 的兼容性问题。
  • 问题是我之前在同一系统上的同一 python 2.6.5 上安装了 django 1.2.1...
  • django 1.2.1?该版本发布时您可能尚未出生。

标签: python django


【解决方案1】:

您可以在 Windows 上安装多个版本的 Python(您似乎正在使用的)而不会出现任何问题。您只需确保针对您的情况正确设置了 Python 的默认版本。

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

如果您正在安装 Python 3,则不必更改路径,因为 Python 3 将自身安装在 C:\Program Files(Windows 中程序的默认位置),因此不会与直接安装到C:\ 驱动器。

一旦您安装了 Python 的更新版本,您只需确保在需要安装 django 时调用该版本的 Python。要有效地做到这一点,请使用 Python virtual environment

假设您已在C:\Python-27 中安装了最新版本的 Python 2,以下是针对它安装最新版本 django 的方法:

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

> 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】:

    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 版本,您应该使用虚拟环境来隔离它们。

    【讨论】:

      【解决方案3】:

      通过安装我需要的 Django 版本解决了问题 - 1.2.1 不使用 pip 而是下载文件并手动运行: python setup.py install.

      【讨论】:

      • 请不要使用这个版本的django;使用应用了适当安全补丁的当前受支持版本。
      猜你喜欢
      • 2012-08-03
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      • 2016-04-30
      相关资源
      最近更新 更多