【问题标题】:install omniorb python in a virtualenv在 virtualenv 中安装omniorb python
【发布时间】:2012-03-31 18:38:44
【问题描述】:

我正在尝试在 python 的 virtualenv 中安装 omniorb

使用包含的配置脚本和 omniorb 执行此操作似乎相当困难。

有人知道用于omniorb 的pip、setup.py 或easy_install 脚本吗?

【问题讨论】:

  • 你在什么平台上做这个? Linux、Windows 还是 ...?
  • 我的主要环境是 ubuntu 11.04 64 位,但我希望能够独立于平台。

标签: python virtualenv pip corba


【解决方案1】:

出于好奇,我刚刚在 Ubuntu 10.04 上进行了尝试。我没有适合您的 pip 或 setup.py 解决方案,但这并不太难。

我认为秘诀是设置 PYTHON 变量以配置为指向您的 virtualenv 中的 python 可执行文件。我从源代码构建了 omniORB 和 omniORBPy,并将它们安装到我的 virtualenv 下的目录中(通过指定要配置的 --prefix 选项)。

然后,您必须将在omniORB 安装目录下创建的site-packages 目录放在您的PYTHONPATH 上。我选择通过在我的 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'
>>>

【讨论】:

  • 这就像一个魅力。除非有什么特别的事情发生,否则我很快就会接受这个答案。
  • 我刚刚尝试过这个,它对我有用,但只有当我在 lib 目录中时,例如在您的示例中,它将是/home/brian/coding/python/virtualenvs/omniORB/omniORB_install/。在您示例中的其他目录中,我得到:... import _omnipy ImportError: libomniORB4.so.2: cannot open shared object file: No such file or directory。所以我需要在activate 脚本中添加一些技巧来更改(和恢复)LD_LIBRARY_PATH
  • @Patryk 如果它仅在您位于 lib 目录中时有效,则听起来您的 virtualenv 未处于活动状态,它正在当前目录中查找所需的文件。
  • @BrianNeal 当我尝试python -c "import CORBA"时它处于活动状态
猜你喜欢
  • 2015-02-28
  • 2012-11-02
  • 2013-09-18
  • 2018-01-22
  • 1970-01-01
  • 2012-09-11
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多