找回密码
 立即注册

QQ登录

只需一步,快速开始

sonlia

银牌会员

208

主题

635

帖子

2019

积分

银牌会员

积分
2019

微信认证勋章

sonlia
银牌会员   /  发表于:2023-8-9 12:39  /   查看:980  /  回复:3
本帖最后由 sonlia 于 2023-8-9 12:42 编辑

最近 用python 写了些功能,也做了些思考如何c#嵌入python。虽说实现上有待验证,起码我这边走通了一些,起初的想法是方便发布,因为上活字格云,搞不了其他的,发现在发布插件的时候需要了解C#东西太多,直白说,不搞 了,抛砖引玉,希望 格友,在c#发电力把想法落地。

方法一,c#调用py可以直接调用py代码文件,比如pythonnet 直接按照模块导入,此处需要的知识 请 搜索 ”c#嵌入python “ 关键字,期间要注意配置python.exe 路径1以及 库路径,基本能跑通。
方法二,生成pyd 动态库。通过cython 把py代码转成c ,然后c 编译成dll,你懂的。dll就成了。不过如果有第三方库的情况,依然绕不开python环境。生成动态库 还可以 nuitika  导出模块,生成pyd,这个比较牛牛了,他可以把环境运行时 打包进去。即使有第三方库,也可以打包在一个pyd,这时候你会发现。一个pyd个头会很大。(nuitka本质也是把代码转成c,这时候如果生成dll,那不是爽歪歪。如果有大牛,可以尝试下,我尝试了下,经常少库,哎,直白点,不搞了,没时间)。
这时候介个方法一直接导入pyd,然后 sys添加pyd 的路径依赖的问题就解决了,嗯这是在没有编译成插件的情况下,问题解决了,但是。。编译成插件后我发现,运行目录变了,感觉调试插件挺费劲的。不搞了,不过 c#调用python这条路 通了。
现在有个想法:
   。。我觉得 py相对好学,但是在格子上应用比较麻烦,现在 只能http交互了。有没有这样的可能,做个插件
1,作为服务端命令,参数输入,返回值,调用函数,都以字符串的形式在服务端指定,c#调用python,内部反序列化,返回字符串,然后在服务端直接用json序列化。至于第三方库,嘛,我们就nuitka 编译成一个module。甚至在服务端直接写py,python直接编译代码。哪个c#牛牛,可以实现下。

2,官方 能带个grpc 服务么,这样也爽歪歪

nodeTopo.rar

8.25 MB, 下载次数: 27

3 个回复

VVANVI悬赏达人认证
论坛元老   /  发表于:2023-8-9 15:06:11
沙发
python  重度使用建议  试试 云服务商的  云函数 产品,  用起来那叫一个爽  ,一切皆可api
回复 使用道具 举报
sonlia
银牌会员   /  发表于:2023-8-9 15:16:00
板凳
VVANVI 发表于 2023-8-9 15:06
python  重度使用建议  试试 云服务商的  云函数 产品,  用起来那叫一个爽  ,一切皆可api

哎本地 fastapi
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2023-8-9 12:39:22
地板
感谢各位大佬的支持~

这边儿对代码也不是很了解哈,可以在论坛看看大佬们的方案哈
image.png355509032.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部