2012-03-15 2 views
4

omniorb을 virtualenv에 python으로 설치하려고합니다.virtualenv에 omniorb python을 설치하십시오

omniorb와 함께 포함 된 configure 스크립트를 사용하면 다소 어려워 보입니다.

누군가가 옴 파이어, setup.py 또는 easy_install 스크립트에 대해 알고 있습니까?

+0

? Linux, Windows 또는 ...? –

+0

나의 주요 환경은 우분투 11.04 64 비트이지만, 나는 플랫폼과 무관 한 것을 기대하고 있었다. – mirk

답변

10

호기심에서 우분투 10.04에서이 기능을 사용해 보았습니다. 나는 pip 또는 setup.py 솔루션이 없지만 너무 어렵지 않습니다.

내가 생각하는 비밀은 PYTHON 변수를 virtualenv의 python 실행 파일을 가리 키도록 설정하는 것입니다. 소스에서 omniORB와 omniORBPy를 빌드하고 (구성 할 --prefix 옵션을 지정하여) 내 virtualenv 아래에 디렉토리에 설치했습니다.

그런 다음 PYTHONPATH에 omniORB 설치 디렉토리 아래에 만들어진 site-packages 디렉토리를 만들어야합니다. 나는 내 virtualenv의 site-packages 폴더에 omniorb.pth 파일을 생성하여이 작업을 수행하기로 결정했다.

여기에 내가 한 일의 셸 이력이 있습니다. 나는 디렉토리 /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 파일이 있습니다. 디렉토리를 virtualenv의 맨 위로 변경하십시오. 보이는이 같은 위치 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는 활성화되어 있지 않고 현재 디렉토리에 필요한 파일을 찾는 것처럼 들립니다. –

관련 문제