Показаны сообщения с ярлыком virtualenv. Показать все сообщения
Показаны сообщения с ярлыком virtualenv. Показать все сообщения

12 марта 2012

Установка Matplotlib и Numpy в virtualenv на Debian

Взято от сюда. Если вы хотите в virtualenv, через pip install установить Numpy и Matplotlib, то необходимо вначале поставить в систему:
sudo apt-get install build-essential python-dev libfreetype6-dev libpng-dev python-virtualenv
Дальше устанавливаем пакеты в окружении:
$ virtualenv env
$ cd env
$ source bin/activate
(env)$ pip install numpy matplotlib

...
...
Successfully installed numpy matplotlib
Cleaning up...

19 декабря 2011

Как поднять demo версию проекта на paster + virtualenv в Debian

Иногда необходимо поднять демо версию своего проекта для тестов. Склонируем наш git проект на сервер где будет демо
git clone --bare ~/myproject ssh://uralbash@myserver/~/my_project.git
Проект склонируется в домашнюю директорию сервера myserver. Ключ --bare означает что клон предназначен только для push или pull т.е. все коммиты мы будем делать у себя локально а потом пушить на сервак. Далее напишем скрипт который будет из нашего bare репозитария создавать проект для запуска демки
rm -r /home/uralbash/my_project
git clone /home/uralbash/my_project.git /home/uralbash/my_project
После этого создаем virtualenv окружение (/home/uralbash/mypythonenv/) и добавляем скрипт запуска в /etc/init.d/my_project.sh
#! /bin/sh
 
### BEGIN INIT INFO
# Required-Start:    $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the paster server
# Description:       starts paster 
### END INIT INFO
 
 
PROJECT=/home/uralbash/my_project
PID_DIR=/var/run/my_project/
PID_FILE=/var/run/my_project/paster.pid
LOG_FILE=/home/uralbash/logs/my_project/paster.log
USER=root
GROUP=root
PROD_FILE=/home/uralbash/demo.ini
RET_VAL=0
 
cd $PROJECT
 
case "$1" in
start)
../mypythonenv/bin/paster  serve \
--daemon \
--pid-file=$PID_FILE \
--log-file=$LOG_FILE \
--user=$USER \
--group=$GROUP \
$PROD_FILE \
start
 
;;
stop)
../mypythonenv/bin/paster  serve \
--daemon \
--pid-file=$PID_FILE \
--log-file=$LOG_FILE \
--user=$USER \
--group=$GROUP \
$PROD_FILE \
stop
 
;;
restart)
../mypythonenv/bin/paster  serve \
--daemon \
--pid-file=$PID_FILE \
--log-file=$LOG_FILE \
--user=$USER \
--group=$GROUP \
$PROD_FILE \
restart
 
 
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
Для того что бы не хранить пароли в репозитарии файл с настройками вынесен отдельно /home/uralbash/demo.ini

И добавляем в крон перезапуск
# выполнять каждый четный час в 00 мин
0 */2 * * *       /etc/init.d/my_project.sh stop > /dev/null
# выполнять каждый четный час в 01 мин
1 */2 * * *       /etc/init.d/my_project.sh start > /dev/null
# выполнять в 9:00
0 9 * * *       /home/uralbash/demo_update.sh > /dev/null

После этого каждый день в 9:00 будет обновляться код и каждые 2 часа перезапускаться сервер (на случай если он полег по какойто причине). Останется только периодически отправлять коммиты.

16 декабря 2011

Установка psycopg2 в virtualenv для Postgres 9.1

При установке psycopg в virtualenv может возникнуть ошибка
(mypythonenv)uralbash@server:~% pip install psycopg
Downloading/unpacking psycopg
  Downloading psycopg2-2.4.3.tar.gz (687Kb): 687Kb downloaded
  Running setup.py egg_info for package psycopg
    Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
    
    Complete output from command python setup.py egg_info:
    running egg_info

creating pip-egg-info/psycopg2.egg-info

writing pip-egg-info/psycopg2.egg-info/PKG-INFO

writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt

writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt

writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'

warning: manifest_maker: standard file '-c' not found

Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.



----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /home/uralbash/.pip/pip.log


Это возникает из-за утилиты pg_config которая требуется для установки psycopg. В случае если у Вас Postgres 8.4 нужно добавить pg_config в PATH (как то такPATH=$PATH:/usr/bin/). Путь до pg_config можно узнать
whereis pg_config
pg_config: /usr/bin/pg_config

И установить пакеты
sudo apt-get install libpq-dev python-dev
Но если стоит 9.1 версия то может возникнуть ошибка
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libpq-dev : Depends: libpq5 (= 8.4.9-0squeeze1) but 9.1.1-1~bpo60+1 is to be installed
E: Broken packages

В этом случае устанавливаем psycopg не в окружении через
sudo pip install psycopg2
Смотрим куда это встало
sudo python -c "import psycopg2;print psycopg2.__file__"
/usr/lib/python2.6/dist-packages/psycopg2/__init__.pyc
И копируем к себе в lib'ы в virtualenv
sudo cp -r /usr/lib/python2.6/dist-packages/psycopg2  mypythonenv/lib/python2.6/site-packages/
Копипастим яйцо
sudo cp /usr/lib/python2.6/dist-packages/psycopg2-2.4.4.egg-info  mypythonenv/lib/python2.6/site-packages/
Еще надо будет скопировать mx
sudo cp -r /usr/lib/python2.6/dist-packages/mx  mypythonenv/lib/python2.6/site-packages/
Жеский дьютихак но главное что работает малой кровью.