Linux ZeroC Ice 环境配置

来源:互联网 发布:搞不好是洗衣粉 知乎 编辑:程序博客网 时间:2024/05/29 15:30

公司需要用到Ice研究了一下

下载好源码,编译完成,make install后会安装到/opt/Ice-3.7.0这个地方

执行import Ice会出现找不到包的问题

这个是关于Python包的查找问题

执行如下:

import syssys.path

如果在Python中执行了这个又没有显示ice的路径需要将Ice的路径添加进去

1.永久添加

在shell的rc中添加Python的查找路径,我用的是zsh那么

vi ~/.zsh

最后面加入

export PYTHONPATH=/opt/Ice-3.7.0/python:$PYTHONPATH

保存退出

source ~/.zshrc


2.临时添加

export PYTHONPATH=/opt/Ice-3.7.0/python:$PYTHONPATH


到此Ice的包目录可以找到

执行

In [1]: import Ice---------------------------------------------------------------------------ImportError                               Traceback (most recent call last)<ipython-input-1-16d7a0dada22> in <module>()----> 1 import Ice/opt/Ice-3.7.0/python/Ice/__init__.py in <module>()     45 # Import the Python extension.     46 #---> 47 import IcePy     48      49 #ImportError: libIceDiscovery.so.37: cannot open shared object file: No such file or directory


这里就不是和Python的路径有关了,这个地方是IcePy.so调用了那个指定的so

在/opt/Ice-3.7.0/python/Ice目录下使用ldd命令查看IcePy.so

linux-vdso.so.1 =>  (0x00007ffc5cb91000)libIceDiscovery.so.37 => not foundlibIceLocatorDiscovery.so.37 => not foundlibIceSSL.so.37 => not foundlibIce.so.37 => not foundlibmcpp.so.0 => /usr/lib/x86_64-linux-gnu/libmcpp.so.0 (0x00007f1848c89000)


需要和上面一样的办法添加

export LD_LIBRARY_PATH=/opt/Ice-3.7.0/lib/x86_64-linux-gnu:$ICE_HOME/lib:$LD_LIBRARY_PATH

在执行一次ldd IcePy.so得到linux-vdso.so.1 =>  (0x00007ffc5cb91000)libIceDiscovery.so.37 => /opt/Ice-3.7.0/lib/x86_64-linux-gnu/libIceDiscovery.so.37 (0x00007f1849934000)libIceLocatorDiscovery.so.37 => /opt/Ice-3.7.0/lib/x86_64-linux-gnu/libIceLocatorDiscovery.so.37 (0x00007f184970c000)libIceSSL.so.37 => /opt/Ice-3.7.0/lib/x86_64-linux-gnu/libIceSSL.so.37 (0x00007f18494c7000)libIce.so.37 => /opt/Ice-3.7.0/lib/x86_64-linux-gnu/libIce.so.37 (0x00007f1848f1d000)libmcpp.so.0 => /usr/lib/x86_64-linux-gnu/libmcpp.so.0 (0x00007f1848c89000)

现在在import Ice就可以了






原创粉丝点击