2012-03-15 215 views
4

我試圖在用於python的virtualenv中安裝omniorb在virtualenv中安裝omniorb python

使用omniorb包含的配置腳本來做到這一點似乎相當困難。

有沒有人知道一個點,setup.py或easy_install腳本omniorb?

+0

什麼平臺都你這樣做? Linux,Windows或...? – 2012-03-26 23:52:57

+0

我的主要環境是Ubuntu 11.04 64位,但我希望有一些與平臺無關的東西。 – mirk 2012-03-27 07:12:58

回答

10

出於好奇,我只是在Ubuntu 10.04上試過這個。我沒有pip或setup.py解決方案,但它並不難。

我認爲祕訣是將PYTHON變量設置爲指向virtualenv中的python可執行文件。我從源代碼構建了omniORB和omniORBPy,並將它們安裝到我的virtualenv目錄下(通過指定--prefix選項進行配置)。

然後您必須將site-packages目錄創建在您的PYTHONPATH的omniORB安裝目錄下。我選擇通過在我的virtualenv的site-packages文件夾中創建一個omniorb.pth文件來完成此操作(更多內容在下面)。

這是我做過的shell歷史。我正在一個目錄/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 2012-03-27 07:52:15

+0

我剛剛嘗試過這一點,它爲我工作,但只有當我在'lib'目錄與例如在你的例子中它會是'/ home/brian/coding/python/virtualenvs/omniORB/omniORB_install /'。在你的例子中的其他目錄中,我得到:'... import _omnipy ImportError:libomniORB4.so.2:無法打開共享目標文件:沒有這樣的文件或目錄。所以我需要在'activate'腳本中添加一些hack來改變(並恢復)LD_LIBRARY_PATH。 – Patryk 2015-12-08 19:13:53

+0

@Patryk如果它只適用於當你在'lib'目錄時,它聽起來像你的virtualenv不活躍,它正在當前目錄中找到它需要的文件。 – 2015-12-08 20:41:21