社区
C#
帖子详情
C#调用python
Timon---老赵
2019-07-22 06:08:53
使用c#调用python对图像进行处理并返回标记结果,现在c#已经有图像的byte数组,python也做好(使用caffe框架),问题就是不知道如何通信,ironpython使用第三方库出问题。目前想讲图像的byte数组传给python,并返回图像的byte数组给C#显示
...全文
257
10
打赏
收藏
C#调用python
使用c#调用python对图像进行处理并返回标记结果,现在c#已经有图像的byte数组,python也做好(使用caffe框架),问题就是不知道如何通信,ironpython使用第三方库出问题。目前想讲图像的byte数组传给python,并返回图像的byte数组给C#显示
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
橘子皮...
2019-07-24
打赏
举报
回复
python模块是多,但是语法不严谨,不是很喜欢
angel6709
2019-07-23
打赏
举报
回复
没有这需求的
Timon---老赵
2019-07-23
打赏
举报
回复
好的,谢谢了
wanghui0380
2019-07-23
打赏
举报
回复
net这边的demo,你可以看到,没几行代码。
https://www.cnblogs.com/linxmouse/p/7914453.html
python那边的demo,同样没几行代码
https://www.cnblogs.com/zl0372/p/zeromq.html
当然,这个还有个好处。就是如果采用发布/订阅模型,你们还可以做个调试工具,这样可以可视化调试,这种开发最常见的对话场景就是
“哎,那个谁,我发给你了,你为啥没发给我”
"额,我没收到,你确认你发了"
“我真发了,你看我的日志”
“你真没发,我日志里没有”
----------------------------------
所以,如果是发布/订阅模型,外面可以弄个调试工具看,谁发了,谁没发。一目了然
wanghui0380
2019-07-23
打赏
举报
回复
本机通讯-----------因为python不能嵌入,不能引用。你可以用引擎直接调用,这个相当与cmd的方式,我个人不建议。挑费大。
个人建议,python作为后台进程给你提供服务。所以这个属于跨进程通讯(跨进程通讯手段很多,你可以自己百度,当然看看就好,因为都是基础底层手段,原来可以当技术,现在嘛封装好的东西很多,这种底层的东西知道就好,不必太过理会)。grpc就行,如果你觉着grpc这种先定义消息的麻烦,可以用zeromq的ipc通讯
ps:net这边使用netmq(zeromq的net版本),python那边是zmq。本地通讯使用ipc方式,至于应答模型建议使用pull/push异步( 请求-回复其实也行,不过是同步阻塞,你的处理超时,不然一旦对方挂了,你就死那里了,所以建议使用异步方式)
当然对于python那么使用zmq也是好事情,python线程模型弱,异步模型也弱。不如采用ipc外接你的请求,内部用peer to peer进程内通讯异步隔离处理你的请求。相对于给python加个Eventbus
Timon---老赵
2019-07-23
打赏
举报
回复
我们两个是本地的,我这边控制相机拍照,将图片传给他,他处理完给我。
qq14923349
2019-07-23
打赏
举报
回复
用socket最安全 不用担心架构变化
橘子皮...
2019-07-23
打赏
举报
回复
flask grpc tornado
wanghui0380
2019-07-22
打赏
举报
回复
当然还有一种方式,就是对方把python训练好的模型给你,你用ML.net 或者tensorflowsharp调用(呵呵,这种把估计对方不答应,你估计也一时半会弄不明白),所以俺现在不建议,这是提提,这种其实也可以,只看以后能不能流行开了
wanghui0380
2019-07-22
打赏
举报
回复
你貌似问过一样的问题。 前面已经回答过了,既然是通讯。你们双方就的写协议。我想问一下对方的水平如何。 如果对方水平高,你让加装web模块,给你提供web模块方式,你用 http post传递。这种使用最简单,但是其实是难度最大的。因为这是同步调用,对方水平不高,分分钟挂死(BAT使用这种方式,当然BAT们用了前置分布代理) 中等水平,grpc,avro,thift这类都成。定好中间协议,两边用grpc给的工具自动生成,然后就是调用。 低等水平-----------低等水平直接tcp把,原始低等的越觉得自己写最NX,别人写的都是垃圾,出错控制不了。所以自己写tcp 当然还有一种就看你们接受不接受了,那就是不直接通讯,中间用mq,kafaka间接通讯。(这种方式主要考虑的是以后升级方便,扩展方便,隔离开的,你们可以各自开发各自的,谁也不用管谁) ps:当然我上面的说的都是网络通讯,如果是本机通讯。用zeromq这类内嵌的就行(本机通讯不需要装那些第3方的东西,本来直接直接命名管道,直接内存文件映射都成,不过就怕python跑虚拟机上的,python的人喜欢跑虚拟机,喜欢折腾gpu)
C#
调用
Python
Iron
Python
是一种在 NET 和 Mono 上实现的
Python
语言,由 Jim Hugunin(同时也是 Jython 创造者)所创造。
Python
是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python
是一种解释型脚本语言,可以应用于以下领域:● 科学计算和统计● 人工智能● 桌面界面开发● 软件开发● 后端开发● 网络爬虫。
C#
调用
Python
的方法
两种方法: 一 、直接
调用
.py文件执行 1.编写hello.py文件(不含第三方库),放在
C#
项目中的Debug文件目录下3. def show(str): print(str) 2.在
C#
中使用NuGet安装Iron
python
库 3.
调用
代码 // 直接
调用
.py文件 ScriptRuntime pyRunTime =
Python
.CreateRuntim...
c#
调用
python
的三种方法
https://blog.csdn.net/qq_42063091/article/details/82418630 一、使用
c#
,nuget管理包上下载的iron
Python
安装包 尝试后发现,对引用了numpy等第三方库的
python
代码,会报找不到模块xxx的错误,上网查证后发现此问题基本难以解决 二、使用安装好的
python
环境,利用
c#
命令行,
调用
.py文件执行 优点:执行速度只比在
python
本身环境中慢一点,步骤也相对简单 缺点:需要用户安装配置
python
环境 实用步骤: 1、下载安装pyt
C#
与
Python
代码互相
调用
的实践
在当今的软件开发领域,不同的编程语言都有其独特的优势和适用场景。
C#
是一种功能强大、面向对象的编程语言,主要应用于 Windows 平台开发、企业级应用开发以及游戏开发(借助 Unity 引擎等)等领域;而
Python
则以其简洁的语法、丰富的库以及在数据科学、机器学习、自动化脚本等众多方面的出色表现备受青睐。在实际的项目开发中,有时候我们希望能够结合这两种语言的优势,实现
C#
与
Python
代码的互相
调用
,这不仅可以充分利用已有的代码资源,还能拓展项目的功能边界。
c#
调用
python
函数脚本_
C#
调用
python
脚本
C#
调用
Python
脚本操作步骤1.创建一个控制台程序. O0101_DotNetCall
Python
.2.管理 Nuget 程序包,搜索 Iron
Python
, 然后安装。此操作会自动完成下列操作。已将引用“Iron
Python
”添加到项目“O0101_DotNetCall
Python
”已将引用“Iron
Python
.Modules”添加到项目“O0101_DotNetCallPytho...
C#
111,128
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章