2012-01-17 3 views
4

Я хочу установить версии 1.3.1 Django в новом virtualenv. У меня уже установлена ​​версия Django 1.3.0 в системе. Я установил virtualenv с no-site-packages и попытался переустановить Django следующим образом, но без успеха:Как заставить новую версию Django в virtualenv?

$ virtualenv --no-site-packages pyenv 
New python executable in pyenv/bin/python 
Installing setuptools............done. 
Installing pip...............done. 
$ source pyenv/bin/activate 
(pyenv)$ python 
Python 2.6.6 (r266:84292, May 26 2011, 21:27:16) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
>>> django.VERSION 
(1, 3, 0, 'final', 0) 

ОК, так что даже если я не установлен Django, и я использовал no-site-packages, то virtualenv до сих пор как-то взял до версии системы.

Теперь, чтобы попытаться переписана его с версией 1.3.1:

(pyenv)$ pip install django==1.3.1 
Downloading/unpacking django==1.3.1 
    Downloading Django-1.3.1.tar.gz (6.5Mb): 6.5Mb downloaded 
    Running setup.py egg_info for package django 
Installing collected packages: django 
    Found existing installation: Django 1.3 
    Not uninstalling Django at /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages, outside environment /Users/anna/Dropbox/code-local/pyenv/pyenv/bin/.. 
    Running setup.py install for django 
    changing mode of build/scripts-2.6/django-admin.py from 644 to 755 
    changing mode of /Users/anna/Dropbox/code-local/pyenv/pyenv/bin/django-admin.py to 755 
Successfully installed django 
Cleaning up... 
(pyenv)$ python 
Python 2.6.6 (r266:84292, May 26 2011, 21:27:16) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
>>> django.VERSION 

Это не сработало, она по-прежнему указывает на 1.3.0!

Обратите внимание на строку: Found existing installation: Django 1.3 Not uninstalling Django.

Как я могу заставить свой virtualenv использовать 1.3.1? Нужно ли мне редактировать мой локальный путь Python?

Я смущен относительно того, почему virtualenv может даже видеть систему Django, когда я явно установлен с no-site-packages. Так ли это должно работать?

+1

Попробуйте сказать pip, чтобы игнорировать установленные пакеты с '-I'. Вы, вероятно, также хотите указать каталог для своего виртуального пользователя с помощью '-E/path/to/env' –

+3

попробуйте это решение: http://stackoverflow.com/questions/5569895/virtualenv-using-wrong-django – lqez

ответ

1

Вы можете использовать опцию -U для обновления.

пункт установить -U Джанго == 1.3.1

+0

Нет, просто запустите это, все еще получив 'Found existing installation: Django 1.3 Не удаляя Django' и' >>> django.VERSION (1, 3, 0, 'final', 0) '. – Richard

+2

'pip install -U django' должно быть достаточно, так как он автоматически вытащит последнее. Не уверен, почему это не сработало, как есть. Вы также можете попробовать 'pip install -I django', который будет игнорировать установленные пакеты. –

1

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

  • Что представляет собой содержимое каталога site-packages в виртуальной среде?
  • Что значение django.__file__ для версии импортируемого
  • Есть ли настройки, возможно, в site.py или вы используете каталог сайтов пользователя?

Для чего я использовал ту же команду с опцией --no-site-packages, и мне не удалось импортировать версию django, установленную в системном масштабе.

4

После того, как вы создали и активировали virtualenv с помощью --no-site-packages, не должно быть доступа к пакету django. Я предполагаю, что вы каким-то образом модифицировали PYTHONPATH, чтобы обеспечить его. echo $PYTHONPATH (шахта пустая строка) Попробуйте запустить pip freeze, это то, как он выглядит для меня:

$> virtualenv --no-site-packages testenv 
New python executable in testenv/bin/python2.7 
Also creating executable in testenv/bin/python 
Installing setuptools............done. 
Installing pip...............done. 
$> source testenv/bin/activate 
(testenv)$> pip freeze 
wsgiref==0.1.2 
0

У меня такая же ситуация с моей virtualenv. Я решил свою проблему с этим шагом:

Открыть оболочки и тип:

python 

import django 

django.__path__ 

это подскажет вам путь, вы должны удалить старую версию Джанго.

Перейти в этот каталог и использование корневых вариантов (я думаю, что и нужно это для удаления каталога) с Судо и введите следующие команды:

rm -r Django 
rm -r Django-1.3.0.egg-info/ 

наконец, установить Django 1.3.1

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

  • Нет связанных вопросов^_^