2016-06-08 98 views
1

爲了讓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:安裝Django時出錯:語法錯誤

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 

好像巨蟒的版本是什麼導致了問題,但我以前安裝了相同的PIP和相同的Python版本的任何的Django 。

我目前的環境: PIP 1.2.1, 蟒蛇2.6.5, 窗口10 64位,需要Django的版本:1.2.1

任何人只要有一個想法?

+0

現在你有與Django的兼容性問題。 –

+1

事情是,以前我在同一個系統上安裝了相同的python 2.6.5上的django 1.2.1 ... –

+1

django 1.2.1?該版本發佈後,您可能還沒有出生。 – e4c5

回答

0

該問題已通過安裝我需要的Django版本解決 - 1.2.1不使用pip,但下載文件並手動運行: python setup.py install

+1

請不要使用此版本的django;使用具有適用安全補丁的當前支持版本。 –

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

爲Python 2.6支持在Django 1.7被放棄了,那麼爲什麼當您試圖得到這個錯誤,我不知道安裝Django 1.2.1。也許更新的版本位於temp\pip-build\目錄中。由於它被稱爲temp,刪除該目錄應該是安全的。

在任何情況下,Python 2.6和相應的Django版本都不安全並且不受支持。我強烈建議使用當前版本。如果其他項目需要舊的棄用Python版本,則應使用虛擬環境隔離它們。

2

您可以在Windows上安裝多個版本的Python(您似乎正在使用),沒有任何問題。您只需確保爲您的情況正確設置了默認版本的Python。

而不是使用極度過時的django版本,請安裝最新版本的Python - 只需從安裝程序中選擇不同的路徑即可。因此而不是C:\Python27將其設置爲C:\Python-27或其他任何東西。

如果您要安裝Python 3,則不必更改路徑,因爲Python 3自行安裝在C:\Program Files(Windows中程序的默認位置),因此不會與直接安裝到C:\上的Python 2衝突駕駛。

一旦你安裝了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 

現在你有最新版本的Django的安裝在更新版本的Python上。

管理這些環境可能很困難;所以我會建議下載一個Python IDE。 PyCharm是我使用的,並且有免費的社區版本可用。它可以讓你輕鬆管理所有不同版本的Python。