cython相关内容

Cython相对导入错误,即使执行绝对导入也是如此

我在Cython(使用Python 3.5)中遇到麻烦,无法在单个软件包中的模块之间导入。 我遇到的错误是 SystemError:父模块“”未加载,无法执行相对导入,即使我显然在进行绝对导入。 下面是我正在使用的简单测试设置。使用下面的纯Python版本( .py 而不是 .pyx 并且没有编译),这可以很好地工作,但无法通过Cython进行编译。请注意,在下面的示例中,我实际上并没 ..
发布时间:2020-10-14 20:13:26 其他开发

cython openmp single,障碍

我正在尝试在cython中使用openmp。我需要在cython中做两件事: i)在我的 #pragma omp single {} 范围内使用cython代码。 ii)使用 #pragma omp barrier {} 有人知道如何在cython中执行此操作吗? 这里有更多详细信息。我有一个nogil cdef函数 my_fun(),我在omp for循环中调用它: ..
发布时间:2020-10-14 20:12:15 其他开发

防止在cython中对c文件进行双重编译

我正在用c库编写包装程序,该库具有几乎所有功能的文件,比如 all_funcs.c 。反过来,此文件需要编译大量其他c文件 我创建了 all_funcs.pyx 所有功能,但我也想创建一个子模块,该子模块可以访问 all_funcs.c 中的函数。现在可行的是将所有c文件添加到setup.py中的两个扩展中,但是每个c文件都编译两次:第一个用于 all_funcs.pyx ,第二个用于子模块 ..
发布时间:2020-10-14 20:12:13 其他开发

cython编译但未生成pyd文件

我尝试运行python代码,例如 myfile.py (还尝试将其重命名为 myfile.pyx )如下: import pyximport pyximport.install(setup_args = {“ script_args”:[“-编译器= mingw32“]}, reload_support = True) 导入myfile myfile.mycode() ..
发布时间:2020-10-14 20:11:08 其他开发

Cython Wiki的Hello World

我正在尝试从Cython那里学习本教程: http://docs.cython.org/docs/tutorial.html#the-basics-of-cython ,我遇到了问题。 文件非常简单。我有一个helloworld.pyx: print“ Hello World” 和setup.py: 从distutils.core导入从distutils.e ..
发布时间:2020-10-14 20:11:07 C/C++开发

在cython中包装一个typedef枚举

我想在cython中包装以下代码: 枚举状态{GOOD,坏}; typedef枚举状态STATUS; //注意typedef意味着人们不必 //到处都必须写`enum Status` //只返回`GOOD` STATUS hello() ; 我在 c_library.pxd : 来自“ library.h”的cdef extern: ..
发布时间:2020-10-14 20:10:04 其他开发

在Cython中使用C ++ STL映射

我正在尝试在Cython类中使用映射,但是Cython编译器会引发错误。 下面是一个示例,演示了我的问题,并且报告了错误Cython。 Cython文件pyx 从libcpp.map cimport映射 从libcpp.utility cimport对 从libcpp.string cimport字符串 cdef类MyDict: cdef: map [string,in ..
发布时间:2020-10-14 20:10:01 其他开发

Cython MemoryViews:使用数组参数包装C函数以传递numpy数组

我正在尝试使用Cython用数组参数( quick_sort())包装c函数,因此可以将numpy数组传递给它。我已经在文档,SO和网络中搜索了一个可行的最小示例,但没有找到。我尝试了几种可能性,但没有任何进展,因此请帮助我解决这个问题。这是我的文件: quicksort.c #include void quick_sort(int * a,int n){ ..
发布时间:2020-10-14 20:09:58 Python

涉及C对象的Python多处理共享内存问题

我正在开发一个程序,该程序使用外部C库来解析来自外部源的数据,并使用Python库在其上运行一些优化问题。优化非常耗时,因此使用多个CPU将是一个重要的优势。 基本上,我用Cython封装了C(++)结构,如下所示: cdef class CObject(object): cdef long p_sthg cdef OBJECT * sthg def __cinit ..
发布时间:2020-10-14 20:09:53 Python

如何将constexpr暴露给Cython?

文件 Globals.h 包含以下常量定义: namespace MyNameSpace { / **常数** / constexpr index none = std :: numeric_limits :: max(); } ...其中 index 是 uint64_t 的typedef。 如何将其公开给Cython和Pyt ..
发布时间:2020-10-14 20:09:42 C/C++开发

将自定义比较器传递到Cython中的优先级队列

Cython libcpp 模块包含 priority_queue 的模板,这很不错,除了以下几点:我不能向它传递一个自定义比较器(或者至少不知道如何操作)。 我需要这个,因为我需要 priority_queue 进行排序的 argsort 而不是 sort (是的,优先级队列是最佳的 在Cython中是否可能做到这一点,也许是通过以自定义方式包装队列,还是根本不? 例如,假设我 ..
发布时间:2020-10-14 20:09:39 其他开发

内联另一个cython软件包中cdef类的cdef方法

我有一个cython类,如下所示: cdef class Cls: cdef func1(self): 通过 如果我在另一个库中使用此类,我会可以内联func1这是一个类方法吗?还是我应该找到解决方法(例如,通过创建将Cls指针作为arg的func? 解决方案 有一个坏消息:另一个模块不可能进行内联,但是您不必支付Python函数调用的全部费用。 内 ..
发布时间:2020-10-14 20:09:35 其他开发

Python运行时:重新编译和重用C库

我正在开发一种工具,用于对用户定义函数进行一些数值分析。 的想法是在Python中创建一个方便的UI,用户可以在其中输入C函数,然后按一个按钮-并接收一些输出数据。 计算可能要花费几分钟或几小时,因此仅Numpy性能是不可接受的。 我尝试了以下方法:基于Python的UI调用gcc,从用户函数编译dll,该dll比我在Cython包装中基于C的核心算法所使用的函数还要多。它可以工作,但是 ..
发布时间:2020-10-14 20:09:33 Python

使用非内置类型从C ++调用Cython

我正在尝试使用Python和Cython扩展用C ++编写的库的功能。我在C ++中有MyClass类,这对于我的lib是必不可少的。而且我在Python中使用了很多包装类PyMyClass。所以我想使用C ++中的函数(以PyMyClass作为参数)。我怎么能做到这一点? 我想象是这样的: cdef public my_func(MyClass class): *将MyClass ..
发布时间:2020-10-14 20:08:19 C/C++开发

Cythonize,但不使用setup.py编译.pyx文件

我有一个Cython项目,其中包含几个 .pyx 文件。为了分发我的项目,我想提供我推荐的在Cython文档中,以最大程度地减少不同Cython版本的问题。 我目前的工作流程是使用以下项目来构建项目: me @ machine $ python setup.py build_ext --inplace 此Cythonize(即使用Cython将 .pyx 文件转换为 ..
发布时间:2020-10-14 20:08:17 Python

Cython-动态2D C ++数组的Memoryview

目标:使用Cython从2D C ++ char数组获取Memoryview。 一些背景知识: 我有一个本地C ++库,该库会生成一些数据并通过 char ** 将其返回给Cython世界。数组的初始化和操作如下: struct Result_buffer { char ** data_pointer; int length = 0; Result_buffer( ..
发布时间:2020-10-14 20:07:14 Python

Cython:C ++在字典中使用向量?

我正在使用以下代码尝试使用C ++向量: from libcpp.vector cimport向量 cdef struct StartEnd: 长起点,终点 cdef vector [StartEnd] vect print(type(vect)) cdef int i cdef StartEnd j k = {} k ['hi'] = vect for i在 ..
发布时间:2020-10-14 20:06:08 C/C++开发

在C ++中嵌入python函数

我正在尝试使用Cython从python生成c代码,但是名称修改似乎存在一些问题。我首先生成将代码从python转换为c代码,然后使用gcc将代码编译为.so。我想使用cython而不是C / python API的原因是因为稍后我将在更复杂的类上使用它,而我希望稍后再将其用作速度库(我很难找到去世的人从python到C ++,因为通常是相反的方式。以下是我必须尝试执行的所有代码(但失败了)。任何 ..
发布时间:2020-10-14 20:06:06 C/C++开发