Назад | Перейти на главную страницу

Попытка использовать virtualenv Django 1.4.1

У меня на сервере стоит Django 1.2.1. Мне нужно практически использовать Python для установки Django 1.4.1 и адаптера для PostgreSQL, который мне нужен. Я пытаюсь настроить это программное обеспечение на моем сервере. Так что я бегу

virtualenv --python=python2.6 env
. env/bin/activate
pip install -r requirements.txt

Вывод

:~/arkisto$ virtualenv --python=python2.6 env
Running virtualenv with interpreter /usr/bin/python2.6
New python executable in env/bin/python2.6
Also creating executable in env/bin/python
Installing distribute..................................................................................................................................................................................done.
:~/arkisto$  . env/bin/activate
(env):~/arkisto$ pip install -r requirements.txt
Requirement already satisfied (use --upgrade to upgrade): psycopg2 in /usr/lib/python2.6/dist-packages (from -r requirements.txt (line 2))
Downloading/unpacking django==1.4.1 (from -r requirements.txt (line 1))
  Downloading Django-1.4.1.tar.gz (7.7Mb): 7.7Mb downloaded
  Running setup.py egg_info for package django
Installing collected packages: django
  Found existing installation: Django 1.2.3
    Not uninstalling Django at /usr/lib/pymodules/python2.6, outside environment /home/users/sa/tentti/env
  Running setup.py install for django
    changing mode of build/scripts-2.6/django-admin.py from 644 to 755
    changing mode of /home/users/sa/arkisto/env/bin/django-admin.py to 755
Successfully installed django
Cleaning up...

затем увидев версию Django на сервере

(env)$ django-admin --version
1.2.3

Как вы можете использовать программное обеспечение, установленное этими командами?

При установке через pip в virtualenv скрипт администратора django обычно устанавливается под именем django-admin.py (с расширением файла). Скорее всего, в общесистемном django этот скрипт установлен без расширения, поэтому вы снова к нему возвращаетесь.

Пытаться

$ django-admin.py --version

В зависимости от вашей версии virtualenv вам может потребоваться добавить флаг --no-site-packages при создании venv следующим образом:

virtualenv --python=python2.6 --no-site-packages env

Это скажет virtualenv не делать глобально установленные пакеты доступными внутри вашего venv.

Расширение на user214462 ответ

Я запускаю user214462 ответ

virtualenv --python=python2.6 --no-site-packages env

я получил

Running virtualenv with interpreter /usr/bin/python2.6
The --no-site-packages flag is deprecated; it is now the default behavior.
Overwriting env/lib/python2.6/site.py with new content
New python executable in env/bin/python2.6
Not overwriting existing python script env/bin/python (you must use env/bin/python2.6)
Overwriting env/lib/python2.6/distutils/__init__.py with new content
Installing distribute..............................................................................................................................................................................................done.
Installing pip................done.
Overwriting env/bin/activate with new content
Overwriting env/bin/activate_this.py with new content

который, кажется, работает.

2-й добавочный номер user214462 ответ

Я пытаюсь объединить команду virtualenv для установки Django1.4.1

virtualenv --python=python2.6 --no-site-packages env python setup.py install  test/

где я не понимаю синтаксис. Кладу папку тест/ там из-за следующей ошибки, которую я получаю после запуска без папки

Running virtualenv with interpreter /usr/bin/python2.6
There must be only one argument: DEST_DIR (you gave setup.py install env test/)
Usage: virtualenv.py [OPTIONS] DEST_DIR

Я думаю, мне следует запустить virtualenv, а затем поставить после этой команды в той же строке, что запускать в среде.

Приведенный выше синтаксис кажется неправильным, потому что команда python запускается не виртуально, по-видимому, поэтому не работает.

Как вы можете установить Django1.4.1, не делая глобально установленные пакеты доступными внутри вашего venv?