2015-10-05 32 views
0

我在運行OS X的Mac上!0.10優勝美地。 Python & Django的默認版本是2.7 & 1.5。我想成立具有Django的1.8,所以我做的virtualenv如下:錯誤的Django版本在virtualenv中返回

$ virtualenv --no-site-packages django18env 
New python executable in django18env/bin/python2.7 
Also creating executable in django18env/bin/python 
Installing setuptools, pip...done. 
$ source django18env/bin/activate 
(django18env)$ 

然後我安裝的Django 1.8

(django18env)$ sudo pip install django==1.8 
Password: 
Downloading/unpacking django==1.8 
    Downloading Django-1.8-py2.py3-none-any.whl (6.2MB): 6.2MB downloaded 
Installing collected packages: django 
Successfully installed django 
Cleaning up... 
(django18env)$ 

一旦用完我已經安裝的Django下django18env/lib目錄/ python2.7 /站點包/ Django的

如果我把該目錄中的文件__init__.py它表明:

從django.utils.version進口get_version VERSION =(1,8,0,'final',0)

所以它看起來像是在virtualenv目錄中安裝了正確的版本。不過,如果我使用Django管理員--version我得到:

(django18env)$ django-admin version 
1.5.4 

我也試圖在虛擬ENV開始Python和獲取的Django版本的方法:

(django18env)$ python 
Python 2.7.8 (default, Jul 29 2014, 21:50:48) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
>>> django.get_version() 
'1.5.4' 
>>> 

任何想法上爲什麼在1.8版本安裝在vertualenv時它仍然指向1.5?

我讀過關於這裏的各種其他線程,但不能獲取版本指向1.8

任何幫助非常讚賞

感謝

+0

當你在你的virtualenv嘗試輸入'which python'你會得到什麼? – shuttle87

+0

嗨,我得到: /庫/ Web服務器/文檔/虛擬主機/ Django的/ django18env /斌/ Python的 這是指向版本中的virtualenv –

+0

嘗試直接調用在virtualenv中的蟒蛇。 – shuttle87

回答

0

不上的virtualenv使用sudo。 vitualenv的意義在於,要安裝的軟件不是系統範圍的,而是針對該環境的。但不管是在virtualenv還是在其外部,如果你使用sudo,它會將軟件安裝到你的系統中。

[email protected]:~/Desktop/coursera/python/lorem$ virtualenv ipsum 
New python executable in ipsum/bin/python2.6 
Also creating executable in ipsum/bin/python 
Installing setuptools, pip...done. 
#created a virtualenv 
[email protected]:~/Desktop/coursera/python/lorem$ cd ipsum/ 
[email protected]:~/Desktop/coursera/python/lorem/ipsum$ . bin/activate 
# will now install package with sudo 
(ipsum)[email protected]:~/Desktop/coursera/python/lorem/ipsum$ sudo pip install sudokulib # i don't know what it is, just installing. 
[sudo] password for ziya: 
..... 
Collecting sudokulib 
/usr/local/lib/python2.7/dist-packages # attention to this path! 
... 
Successfully installed sudokulib-0.6a0 
(ipsum)[email protected]:~/Desktop/coursera/python/lorem/ipsum$ python 
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sudokulib # import the newly installed module 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named sudokulib 
>>> exit() 
(ipsum)[email protected]:~/Desktop/coursera/python/lorem/ipsum$ deactivate 
#deactivating virtualenv and starting default python 
[email protected]:~/Desktop/coursera/python/lorem/ipsum$ python 
Python 2.7.3 (default, Dec 18 2014, 19:10:20) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sudokulib 
>>> sudokulib.__version__ 
'0.6a' #here it is! 
>>> exit() 
[email protected]:~/Desktop/coursera/python/lorem/ipsum$ . bin/activate 
(ipsum)[email protected]:~/Desktop/coursera/python/lorem/ipsum$ pip install sudokulib #now installing the same module without sudo 
Collecting sudokulib 
    Downloading sudokulib-0.6a.tar.gz 
    /home/ziya/Desktop/coursera/python/lorem/ipsum/lib/python2.6/site-packages 
.... 
Successfully installed sudokulib-0.6a0 
(ipsum)[email protected]:~/Desktop/coursera/python/lorem/ipsum$ python 
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sudokulib 
>>> sudokulib.__version__ 
'0.6a' #seems ok now :) 
>>> 
+0

我試過了。如果我從virtualenv運行pip install django,它說它可以找到一個現有的版本(系統寬度爲1.5)並且不會安裝它。如果我嘗試pip安裝django == 1.8,那麼它會將django版本1.8添加到virtualenv中的Python站點包中,但在查找版本時仍然使用舊版本1.5 –

0

我發現了這個問題。正如我上面所說,Django 1.8被安裝在virtualenv中,但是Python沒有使用它。在vitualenv我開始Python和則:

>>>import django 
>>>django.__file__ 

這表明,Django的已經從進口: /usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib /python2.7/site-packages

當我在我的.bash_profile看上去有一行:

export PYTHONPATH=$PYTHONPATH:/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 

不知道如何/時,這得到了在那裏,但我評論它,重新啓動外殼我現在在我的virtualenv中獲得了Django1.8,而在舊的(默認)版本1.5之外virtualenv中。

感謝您的幫助和建議