相关疑难解决方法(0)

你如何从C代码调用Python代码?

我想扩展一个带有一些新功能的大型C项目,但我真的想用Python编写它.基本上,我想从C代码调用Python代码.但是,像SWIG这样的Python-> C包装器允许OPPOSITE,即编写C模块并从Python调用C语言.

我正在考虑一种涉及IPC或RPC的方法(我不介意有多个进程); 也就是说,让我的纯Python组件在一个单独的进程中运行(在同一台机器上),让我的C项目通过从套接字(或unix管道)写入/读取来与之通信.我的python组件可以读/写socket来进行通信.这是一种合理的方法吗?还有更好的东西吗?像一些特殊的RPC机制?

感谢到目前为止的答案 - 但是,我想专注于基于IPC的方法,因为我希望将我的Python程序作为我的C程序在一个单独的过程中.我不想嵌入Python解释器.谢谢!

c python interop cross-domain

40
推荐指数
3
解决办法
6万
查看次数

数据存储在*.npy中的方式是什么?

我正在使用numpy.save函数保存NumPy数组.我希望其他开发人员能够使用C语言从这些文件中读取数据.所以我需要知道,numpy如何在file.OK中组织二进制数据,当我保存'i4'数组时很明显但是包含一些结构的数组数组呢?在文档中找不到任何信息

UPD:假设数据类似于:

dt = np.dtype([('outer','(3,)<i4'),('outer2',[('inner','(10,)<i4'),('inner2','f8')])])
Run Code Online (Sandbox Code Playgroud)

UPD2:如何保存"动态"数据(dtype - object)

import numpy as np
a = [0,0,0]
b = [0,0]
c = [a,b]
dtype = np.dtype([('Name', '|S2'), ('objValue', object)])
data = np.zeros(3, dtype)
data[0]['objValue'] = a
data[1]['objValue'] = b
data[2]['objValue'] = c
data[0]['Name'] = 'a'
data[1]['Name'] = 'b'
data[2]['Name'] = 'c'

np.save(r'D:\in.npy', data)
Run Code Online (Sandbox Code Playgroud)

从C读到这个东西真的是真的吗?

python numpy

27
推荐指数
2
解决办法
4万
查看次数

标签 统计

python ×2

c ×1

cross-domain ×1

interop ×1

numpy ×1