linux c语言调用python脚本_在Linux上运行的Python脚本如何调用Wine下运行的Python脚本中的例程?...

我有一个在Linux上运行的Python(3)脚本,称为主脚本,它必须从专有DLL调用一个例程。到目前为止,我已经用葡萄酒解决了这个问题,方法如下:# Main script running on Linux

import subprocess

# [...]

subprocess.Popen('echo "python dll_call.py %s" | wine cmd &' % options, shell = True)

# [...]

脚本dll_呼叫.py由Wine下安装的Windows Python(3)解释器执行。它将返回值转储到一个文件中,然后等待的主脚本提取该文件。如果我要连续做几次,那就不太可靠,而且速度慢得令人痛苦。在

我想启动脚本dll_呼叫.py一次,提供某种类型的简单服务器,它应该以某种方式公开所需的例程。最后,我希望有一个主脚本看起来像这样:

^{pr2}$

如何才能最好地实现这一点(如果需要速度而不需要考虑安全性)?在

感谢您的回答和建议。在

对于那些有类似问题的人:受上述答案的启发,我编写了一个小Python模块,用于从Linux上的Python调用Windows dll。它基于IPC,介于常规的Linux/Unix Python进程和基于Wine的Python进程之间。因为我在太多不同的用例/场景中需要它,所以我将其设计为“通用”^{} module插入式替换,它在后台自动完成所需的大部分管道工作。在

示例:假设您在Linux上使用Python,安装了Wine,并且希望调用msvcrt.dll(microsoftc运行库)。您可以执行以下操作:import zugbruecke as ctypes

dll_pow = ctypes.cdll.msvcrt.pow

dll_pow.argtypes = (ctypes.c_double, ctypes.c_double)

dll_pow.restype = ctypes.c_double

print('You should expect "1024.0" to show up here: "%.1f".' % dll_pow(2.0, 10.0))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值