omniORB参考地址:
omniORB
omniORB - Browse Files at SourceForge.net
omniORB - Browse /omniORBpy/omniORBpy-4.3.0 at SourceForge.net
Windows
普通使用好像不需要安装omniorb。就对接北向接口业务需要使用python3.10的windows包,但目前好像没有python3.10的包,因此对接北向接口建议在linux上运行。
pip install omniorb==4.2.3
只下载不安装python -m pip download -d ./ omniorb==4.2.3
python -m pip download -d ./ omniorb
找到指定模块包进行安装python -m pip install --no-index --find-links=./ omniorb==4.2.3
需要网络安装python -m pip install --find-links=./ omniorb==4.2.3
Links for omniorb或者网页下载:
yum reinstall --downloadonly --downloaddir=/tmp/ bzip2
下载解压omniORBpy-4.3.0-win64-python310.zip
注意:需要使用3.10版本的python环境
环境变量配置
PATH添加E:\2022software\omniORBpy-4.3.0\bin\x86_win32 # 命令行下直接运行omniORBpy提供的命令(如编译IDL文件的omniidl和命名服务的omniNames等)
创建PYTHONPATH添加E:\2022software\omniORBpy-4.3.0\bin\x86_win32;E:\2022software\omniORBpy-4.3.0\lib\python;E:\2022software\omniORBpy-4.3.0\lib\x86_win32 # 使python可以搜索到omniORBpy提供的CORBA编程模块
创建OMNINAMES_DATADIR添加E:\2022software\omniORBpy-4.3.0\data # 指定命名服务的数据存储目录
创建LD_LIBRARY_PATH添加E:\2022software\omniORBpy-4.3.0\lib\x86_win32 # 找到omniORB核心库
两种定位分布式对象的方式:
1,使用IOR定位
2,使用命名服务定位(推荐)
使用命名服务需要注册表中添加信息
HKEY_LOCAL_MACHINE\SOFTWARE\omniORB下创建InitRef字符串,并赋值NameService=corbaname::localhost
好像不不需要注册表添加信息
启动方式
命名服务数据文件不存在时omniNames.exe -start
命名服务数据文件存在时omniNames.exe
查看omniNames监听端口并配置代码进行连接
windows上对接北向接口问题,均为解决,转用linux上的包并部署得以解决:
import _omnipy
ImportError: Module use of python310.dll conflicts with this version of Python.
import _omnipy
ImportError: DLL load failed while importing _omnipy: 找不到指定的模块。
2
Linux
只能在root用户下启动Naming Service命名服务,然后让程序来使用。
192.168.124.92
说明:omniORB的安装是否成功和gcc和omniORBpy和python3.10都无关
1,安装配置omniORB
cd /home
tar -xvf omniORB-4.3.0.tar.bz2
mkdir /home/omniORB-4.3.0/build
mkdir /home/myomniORB
cd /home/omniORB-4.3.0/build
../configure --prefix=/home/myomniORB # 选择安装目录,默认/usr/local
../configure PYTHON=/usr/local/bin/python3 # 指定python(查看所有路径whereis pyton,查看当前使用的路径which python)
make # 编译(时间较久)
make install # 安装
make遇到问题:Python.h:没有那个文件或目录
参考:
【已解决】致命错误:Python.h:没有那个文件或目录-CSDN博客
linux yum 离线安装rpm包(转) - 走看看
离线下载yum re/install --downloadonly --downloaddir=./ python3-devel
离线安装rpm -Uvh --force --nodeps *.rpm
不好使
没有权限:sudo chmod -R 777 /usr/local/bin/python3
不好使
不指定PYTHON
好使
2,安装配置omniORBpy
cd /home
tar -xvf omniORBpy-4.3.0.tar.bz2
mkdir /home/omniORBpy-4.3.0/build
mkdir /home/myomniORBpy
cd /home/omniORBpy-4.3.0/build
../configure --prefix=/home/myomniORBpy --with-omniorb=/home/myomniORB
../configure PYTHON=/usr/local/bin/python3 # 指定python(查看所有路径whereis pyton,查看当前使用的路径which python)
# 选择安装目录,默认/usr/local
make
make install
make遇到问题:configure: error: You must specify the omniORB root directory.
需要指定omni ORB的安装目录,使用../configure -h查看所有参数,发现--with-omniorb参数,配置该参数即可。
系统中配置环境变量
vim ~/.bashrc
export PYTHONPATH=/home/omniORB-4.3.0/bin:/home/myomniORB/lib/python3.7/site-packages:/home/myomniORBpy/lib/python3.7/site-packages
export LD_LIBRARY_PATH=/home/myomniORB/lib:/home/myomniORBpy/lib
export OMNINAMES_DATADIR=/home/myomniORB/omninames
3,测试
python3
>>>import CORBA # 不报错说明成功
若报错,查看/home/myomniORB/lib是否存在python3.7目录,若不存在,使用which python查看默认python环境,若不是指向python3.7,则修改/usr/bin/python软连接指向python3.7后重新安装。
4,其他命令
更新pip:
python3 -m pip install --upgrade pip
或conda install mingw libpython