2012-03-15 2 views
4

Я пытаюсь установить omniorb в virtualenv для python.установить omniorb python в virtualenv

Выполнение этого с помощью прилагаемого скрипта configure с omniorb представляется довольно сложным.

Кто-нибудь знает о сценарии pip, setup.py или easy_install для omniorb?

+0

На какой платформе вы делаете это? Linux, Windows или ...? –

+0

Моей основной средой является ubuntu 11.04 64 бит, но я надеялся на что-то независимое от платформы. – mirk

ответ

10

Из любопытства я просто попробовал это на Ubuntu 10.04. У меня нет решения pip или setup.py для вас, но это не слишком сложно.

Я думаю, что секрет состоит в том, чтобы настроить переменную PYTHON для настройки, чтобы указать на исполняемый файл python в вашем virtualenv. Я построил omniORB и omniORBPy из источника и установил их в каталог под моим virtualenv (указав опцию --prefix для настройки).

Затем вы должны поместить каталог site-packages, который создается в каталоге установки omniORB на вашем PYTHONPATH. Я решил сделать это, создав файл omniorb.pth в папке site-packages виртуального пользователя (подробнее об этом ниже).

Вот история оболочки того, что я сделал. Я работаю из каталога /home/brian/coding/python/virtualenvs. Вам придется мысленно настраивать пути и т. Д. Для вашей среды.

virtualenv omniORB 
cd omniORB/ 
. bin/activate 
cp /home/brian/Downloads/omni* . 
tar xvfj omniORB-4.1.6.tar.bz2 
tar xvfj omniORBpy-3.6.tar.bz2 
mkdir omniORB_install 
cd omniORB-4.1.6/ 
mkdir build 
cd build 
../configure --prefix=/home/brian/coding/python/virtualenvs/omniORB/omniORB_install/ PYTHON=/home/brian/coding/python/virtualenvs/omniORB/bin/python 
make 
make install 
cd ../../omniORBpy-3.6/ 
mkdir build 
cd build 
../configure --prefix=/home/brian/coding/python/virtualenvs/omniORB/omniORB_install/ PYTHON=/home/brian/coding/python/virtualenvs/omniORB/bin/python --with-omniorb=/home/brian/coding/python/virtualenvs/omniORB/omniORB_install/ 
make 
make install 

Теперь вот что omniorb.pth файл, о котором я упоминал ранее. Измените каталог на вершину вашего виртуального. Создание omniorb.pth таким образом, что он выглядит и расположен так:

$ cat lib/python2.6/site-packages/omniorb.pth 
/home/brian/coding/python/virtualenvs/omniORB/omniORB_install/lib/python2.6/site-packages 

Теперь внутри моего активированном virtualenv:

$ python 
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import CORBA 
>>> CORBA.__file__ 
'/home/brian/coding/python/virtualenvs/omniORB/omniORB_install/lib/python2.6/site-packages/omniORB/CORBA.pyc' 
>>> 
+0

Это работает как шарм. Если что-то не произойдет, я скоро приму этот ответ. – mirk

+0

Я только что попробовал это, и это сработало для меня, но только когда я в директории 'lib', например. в вашем примере это будет '/ home/brian/coding/python/virtualenvs/omniORB/omniORB_install /'. В других каталогах в вашем примере я получаю: '... import _omnipy ImportError: libomniORB4.so.2: невозможно открыть файл общих объектов: нет такого файла или каталога'. Поэтому мне нужно было добавить некоторые хаки в скрипт 'activate', чтобы изменить (и восстановить)' LD_LIBRARY_PATH'. – Patryk

+0

@Patryk, если он работает только тогда, когда вы находитесь в каталоге 'lib', это звучит так, как будто ваш virtualenv неактивен, и он находит нужные ему файлы в текущем каталоге. –