У меня на сервере стоит 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?