python通过omniORBpy调用CORBA

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/50295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CI/CD】docker + Nginx自动化构建部署

CI/CD是什么 CI/CD 是持续集成(Continuous Integration)和持续部署(Continuous Deployment)或持续交付(Continuous Delivery)的缩写,它们是现代软件开发中用于自动化软件交付过程的实践。 1、…

Centos安装、迁移gitlab

Centos安装迁移gitlab 一、下载安装二、配置rb修改,起服务。三、访问web,个人偏好设置。四、数据迁移1、查看当前GitLab版本2、备份旧服务器的文件3、将上述备份文件拷贝到新服务器同一目录下,恢复GitLab4、停止新gitlab数据连接服务5、恢复备…

GO-学习-03-基本数据类型

数据类型:基本数据类型和复合数据类型 基本数据类型:整型、浮点型、布尔型、字符串 复合数据类型:数组、切片、结构体、函数、map、通道(channel)、接口 整型: package main import "fmt" im…

Apache Doris + Paimon 快速搭建指南|Lakehouse 使用手册(二)

湖仓一体(Data Lakehouse)融合了数据仓库的高性能、实时性以及数据湖的低成本、灵活性等优势,帮助用户更加便捷地满足各种数据处理分析的需求。在过去多个版本中,Apache Doris 持续加深与数据湖的融合,已演进出一套成熟…

32单片机开发bootloader程序

一,单片机为什么要使用bootloader 1、使用bootloader的好处 1) 程序隔离:可以同时存在多个程序,只要flash空间够大,或者通过外挂flash,可以实现多个程序共存,在多个程序之间切换使用。 2)方便程…

OpenHarmony 入门——初识JS/ArkTS 侧的“JNI” NAPI 常见的函数详解(二)

引言 前面一篇文章OpenHarmony 入门——初识JS/ArkTS 侧的“JNI” NAPI(一)介绍了NAPI的基础理论知识,今天重点介绍下NAPI中重要的函数。 一、Native 侧的NAPI的相关的C函数 以下面一段代码为例介绍下主要函数的功能和用法。 napi_value …

系统模块时序图的重要性:解锁系统模块交互的全景视图

在复杂的系统开发中,理解和管理不同模块之间的交互是成功的关键。时序图是一种有效的工具,可以帮助我们清晰地展示这些交互,提升设计和开发的效率。本文将深入探讨系统模块之间的时序图,并通过实例展示其实际应用。 1. 什么是系统模块之间的时序图? 系统模块之间的时序图…

Layui表格向下滑动时表头固定悬浮

记录:Layui表格向下滑动时表头固定悬浮 使用table的height参数: 示例 //“方法级渲染”配置方式 table.render({ //其它参数在此省略height: 315 //固定值 }); table.render({ //其它参数在此省略height: full-20 //高度最大化减去差值 }); 等价于&am…

项目的小结

1.实现实时聊天 1.服务端建立一个ConcurrentHashMap<> 用来存储在线用户&#xff0c;用户账号和socket然后&#xff0c;如果有个人发了信息&#xff0c;就去数据库中查询&#xff0c;然后根据这个在线用户进行传递信息 服务端框架&#xff1a; public class ServerMain {…

git sendemail使用

教程参考&#xff1a; git-send-email - 以电子邮件形式发送补丁集 1、安装git-email 2、配置 SMTP 服务器 git config --global sendemail.smtpserver smtp.163.com git config --global sendemail.smtpserverport 465 git config --global sendemail.smtpuser xxxxxx163.c…

Hyperledger Fabric 网络体验 - 网络启动过程概览

进入fabric-samples/test-network目录&#xff0c;执行指令&#xff1a; ./network.sh up -i 2.5执行完指令能看到fabric已经启动。 作为第一次Fabric网络体验&#xff0c;网络启动主要包含三个操作&#xff0c;分别是生成配置文件、启动网络和操作网络。 配置文件 使用cr…

传知代码-智慧医疗:纹理特征VS卷积特征(论文复现)

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 论文链接&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S1076633223003537?__cf_chl_rt_tkJ9Aipfxyk5d.leu48P20ePFNd4B2aunaSmzVpXCg.7g-1721292386-0.0.1.1-6249 论文概述 今天我们把视线…

【系统架构设计师】十八、信息系统架构设计理论与实践②

目录 四、企业信息系统的总体框架 4.1 战略系统 4.2 业务系统 4.3 应用系统 4.4 企业信息基础设施 4.5 业务流程重组BPR 4.6 业务流程管理BPM 五、信息系统架构设计方法 5.1 行业标准的体系架构框架 5.2 架构开发方法 5.3 信息化总体架构方法 5.4 信息化建设生命周…

Golang | Leetcode Golang题解之第290题单词规律

题目&#xff1a; 题解&#xff1a; func wordPattern(pattern string, s string) bool {word2ch : map[string]byte{}ch2word : map[byte]string{}words : strings.Split(s, " ")if len(pattern) ! len(words) {return false}for i, word : range words {ch : patt…

【知识分享】MIPI C-PHY 互连技术参数定义

目录 0 概述 1 Interconnect Specifications 1.1 Differential Insertion Loss 1.2 Differential Reflection Loss 1.3 Common-Mode Reflection Loss 1.4 Intra-Lane Cross Coupling 1.5 Mode-Conversion Loss 1.6 Inter-Lane Static Skew 2 Driver and Receiver Char…

好的STEM编程语言有哪些?

STEM是科学&#xff08;Science&#xff09;&#xff0c;技术&#xff08;Technology&#xff09;&#xff0c;工程&#xff08;Engineering&#xff09;&#xff0c;数学&#xff08;Mathematics&#xff09;四门学科英文首字母的缩写&#xff0c;STEM教育简单来说就是在通过在…

【管控业财一体化】

1. 引言 大型集团在现代企业管理中扮演着举足轻重的角色&#xff0c;其管控业财一体化解决方案是实现企业高效运营的关键。随着数字化转型的加速&#xff0c;业财一体化不再局限于财务与业务流程的简单融合&#xff0c;而是向着更深层次的数据驱动、智能化决策和价值创造方向发…

SpringMVC中的常用注解

目录 SpringMVC的定义 SpringMVC的常用注解 获取Cookie和Session SpringMVC的定义 Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc)&#xff0c;但它…

百某应JS逆向

https://ying.baichuan-ai.com/ 目录 一、发起提问 二、观察发现有两个加密参数&#xff1a;X-Bc-Sig和X-Bc-Ts ​三、观察JS调用栈 四、从JS中搜索 X-Bc-Sig和X-Bc-Ts 五、断点并分析参数的生成方式 六、分析入参 七、发现关键的o方法调用了一个i()方法 八、验证结果 …

前后端项目打包对比——关于Spring Boot Maven Plugin配置的问题

Spring Boot Maven Plugin 配置详解 Spring Boot Maven Plugin 配置详解1. 添加插件到 pom.xml2. 插件配置2.1 基本配置2.2 配置参数详解默认行为说明简单配置示例为什么这样的配置能工作&#xff1f;进一步说明 2.3 高级配置 3. 使用插件打包应用程序3.1 打包成 JAR 文件3.2 打…