2015-10-05 2 views
0

Я нахожусь на Mac с ОС OS X! 0.10 Yosemite. Стандартные версии Python & Django - 2,7 & 1.5. Я хочу создать virtualenv, который имеет Django 1.8, так что я делаю следующее:Неверная версия 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/Библиотека/python2.7/сайт-пакеты/Джанго

Если я смотрю на __init__.py файл в этом каталоге он показывает:

из django.utils.version импорта Get_Version ВЕРСИЯ = (1, 8, 0, 'final', 0)

Так что, похоже, правильная версия установлена ​​в каталоге virtualenv. Однако, если я использую Django-админ --version я получаю:

(django18env)$ django-admin version 
1.5.4 

Я также попытался запуска питона в виртуальной окр и получить версию Джанго, что путь:

(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.5, когда 1.8 установлен в vertualenv?

Я читал различные другие темы здесь, но не может получить версию, чтобы указать 1.8

Любая помощь ценится

Благодаря

+0

Когда вы находитесь в virtualenv попробуйте ввести 'который python' что вы получите? – shuttle87

+0

Привет, я получаю: /Library/WebServer/Documents/виртуальных доменов/Джанго/django18env/bin/питон Что указывает на версию в virtualenv –

+0

Попробуйте вызова питона в virtualenv непосредственно. – shuttle87

ответ

0

не используйте Sudo на virtualenv. точка vitualenv заключается в том, чтобы установить программное обеспечение не в широком масштабе, но, поистине, для этой среды. но независимо от того, внутри виртуального или вне его, если вы используете 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

Я пробовал это. Если я запустил pip install django из virtualenv, он говорит, что он может найти существующую версию (системная ширина 1.5) и не устанавливает ее. Если я попробую установить pip django == 1.8, то он добавит Django версии 1.8 в пакеты сайта Python в virtualenv, но все еще использует старый 1.5, когда я ищу версию –

0

Я нашел проблему. Как я сказал выше, Django 1.8 устанавливался в виртуальном режиме ОК, но Python не использовал его. В vitualenv я начал Python, а затем:

>>>import django 
>>>django.__file__ 

Это показало, что Джанго был импортирован из: /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 

Не знаете, как/когда это есть там, но я заметил это, перезапустить оболочку и теперь я получаю Django1.8 в моем virtualenv и более старую (по умолчанию) версию 1.5 за пределами virtualenv.

Спасибо за помощь и предложения

Смежные вопросы