Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 不使用numpy从pythoncapi创建数组_Python 3.x_Python C Api - Fatal编程技术网

Python 3.x 不使用numpy从pythoncapi创建数组

Python 3.x 不使用numpy从pythoncapi创建数组,python-3.x,python-c-api,Python 3.x,Python C Api,是否可以使用C-API在C中创建Python 如果是这样,我该怎么做 在CPython源中查找的位置正确吗 如果我使用numpy,我会这样做,但我不能在这个特定的项目中使用numpy。您是否考虑过使用Cython?它不会直接用c编写,但可能会解决实际问题,具体取决于它是什么。我在过去使用过Cython,我只是想知道从CAPI创建数组的具体情况是否可行。让我想到这一点的是,我目前正在为Python扩展创建一个交叉编译实用程序,引入其他依赖项是不可取的。我试图解决的问题是在没有副本的情况下传递一个连

是否可以使用C-API在C中创建Python

如果是这样,我该怎么做

在CPython源中查找的位置正确吗


如果我使用numpy,我会这样做,但我不能在这个特定的项目中使用numpy。

您是否考虑过使用
Cython
?它不会直接用
c
编写,但可能会解决实际问题,具体取决于它是什么。我在过去使用过Cython,我只是想知道从CAPI创建数组的具体情况是否可行。让我想到这一点的是,我目前正在为Python扩展创建一个交叉编译实用程序,引入其他依赖项是不可取的。我试图解决的问题是在没有副本的情况下传递一个连续的内存块,当然还有其他方法可以做到这一点,但这个问题是出于对这个非常具体的案例的好奇,而不是我最初试图解决的问题。我不认为数组API是专门导出的,但是如果有帮助的话,您可以从C调用Python接口(我假设您知道如何做,并且正在寻找更直接的东西……)。不幸的是,所有的初始化函数都涉及到复制现有Python数据,这可能会有点效率低下。您希望使用arraymodule与Python共享什么类型的数据?我认为
array。array
对象总是拥有自己的内存,因此不可避免地需要一个副本。您可以做的是创建一个类,而不是创建副本。(该示例在Cython中链接,但您可以使用C API实现)