【编译Python代码以使用Cython静态链接可执行文件】教程文章相关的互联网学习教程文章

python – Cython:如何包装一个返回C对象的C函数?【代码】

我正在开发一个Python项目,我想与已编写的C包接口.由于我将在本项目的其他部分使用Cython,我更喜欢使用Cython进行换行. 简而言之,我需要包装一个返回自定义类型Bar对象的函数FooBar. 这是Bar.h:#include <cstddef> // For size_t #include <vector>/* data returned by function FooBar()*/ class Bar { public:size_t X;std::vector<size_t> Y; std::vector<double> Z; std::vector<double> M; std::vector<size_t> N; }...

python – 带有C指针的Pickle Cython类【代码】

我正在尝试为包含C指针的cython类编写一个__reduce __()方法,但到目前为止,我找到了关于最佳方法的信息.当使用numpy数组作为成员数据时,有很多关于如何正确编写__reduce __()方法的例子.我想远离Numpy数组,因为它们似乎总是存储为python对象,并且需要调用python API.我来自C背景,所以我很乐意使用对malloc()和free()的调用手动处理内存,并且我试图将python交互保持在绝对最小值. 但是我遇到了一个问题.我需要在我正在创建的类中使用...

如何在cython中编译时删除python断言?

所以,这是我的问题:我在python中编码,但我需要提高代码中某些部分的性能,这些部分太慢了.一个好的(简单的)解决方案似乎是使用cython;我试了一下,结果很好.问题是我在我的python代码中使用assert语句.在使用cython之前,我可以使用-OO选项编译我的python代码,这样我就可以提供一个不执行任何断言测试的版本,并且仍然有调试的断言.但是在cython中编译的文件似乎总是执行断言.是否有一些选项可以传递给cython编译以删除(或不删除)断言...

python – Cython:纯C循环优化【代码】

引用Cython documentation:Cython recognises the usual Python for-in-range integer loop pattern:for i in range(n):... If i is declared as a cdef integer type, it will optimise this into a pure C loop我写了两个版本的简单Cython函数,一个使用Python范围,另一个使用for-from Pyrex符号(应该弃用):def loop1(int start, int stop, int step):cdef int x, t = 0for x in range(start, stop, step):t += xreturn tdef lo...

在Jupyter iPython中运行Cython【代码】

使用Cython接口为时间试验运行迭代循环以获得几何级数. 编译时出错(shift-enter):CompileError:命令’gcc‘失败,退出状态为1%load_ext Cython%%cython def geo_prog_cython(double alpha, int n):cdef double current = 1.0cdef double sum = currentcdef int ifor i in range(n):current = current * alphasum = sum + currentreturn sum错误://anaconda/lib/python3.5/distutils/command/build_ext.py in build_extension(sel...

python 集成cython 简单测试【代码】

? 实际开发中我们可能需要集成c/c++ 编写的模块,我们可以通过cython 解决类似的问题以下测试一个简单的c add 方法, 使用venv 同时构建为一个pip 包环境准备venv 初始化 python3 -m venv . 添加项目依赖包 pip install click cython 代码结构 ├── Makefile ├── README.md ├── cli │ ├── __init__.py │ └── app.pyx ├── ext │ ├── Makefile │ ├── add.c │ ├── add.h ├── pyvenv.cfg └── set...

python – Oursql insallation失败,“cython not found”【代码】

试图在ubuntu 12.10上安装python3x和sqlalchemy0.8的myql驱动程序.它失败并出现以下错误.sudo pip-3.2 install oursql Downloading/unpacking oursql Running setup.py egg_info for package oursql Traceback (most recent call last):File "<string>", line 16, in <module>File "/tmp/pip-build/oursql/setup.py", line 53print "cython not found, using previously-cython'd .c file."^ SyntaxError: invalid syntax Complete...

使Cython在Anacondas,Windows 7 64位上与Python 3.4一起使用【代码】

我刚刚使用Anaconda / Condas在Windows 7 64位计算机上安装了Python 3.4. 当我运行“hello world” cython example时,出现此错误:[py34] C:\Users\Jon\Documents\GitHub\CythonFunctions\cython_funcs>python setup.py build_ext --inplace running build_ext building 'cython_funcs.hello' extension C:\Anaconda\envs\py34\MinGW\bin\gcc.exe -mdll -O -Wall -IC:\Anaconda\envs\py34\include -IC:\Anaconda\envs\py34\include...

python – Cython:对于类型化的内存视图,我应该使用np.float_t而不是double【代码】

关于cython中的内存视图,使用NumPy类型(如np.float_t)键入视图是否有任何优势,而不是简单地在我使用numpy浮点数组时执行双操作? 我应该以同样的方式输入cdef,做e. G.ctypedef np.float64_t np_float_t ...@cython.profile(False) @cython.wraparound(False) @cython.boundscheck(False) cdef np_float_t mean_1d(np_float_t [:] v) nogil:cdef unsigned int n = v.shape[0]cdef np_float_t n_sum = 0.cdef Py_ssize_t ifor i in r...

python – 你能用Cython创建一个PIL图像而不用冗余复制内存吗?【代码】

我正在使用Cython从USB摄像头抓取图像并将其转换为返回给调用者的PIL图像. 图像的数据位于由图像抓取功能返回的结构的“convert_buffer”成员指向的字符数组中:struct FlyCaptureImage:/// stuffchar * convert_buffer/// more stuff现在,我这样做把它变成PIL图像:cdef unsigned char *convert_buffer cdef Py_ssize_t byte_length cdef bytes py_string// get the number of bytes into a Py_ssize_t type byte_length = count/...

python – cython:ndarray字符串的内存视图(或直接ndarray索引)【代码】

如何指定包含字符串的ndarray的内存视图? char [:],char * [:],…不起作用. 为了说明,我的问题是函数abc(…)的定义:cdef void abc(char[:] in_buffer):cdef char * elementelement = address(in_buffer[1])...def main():cdef Py_ssize_t i, n = 100a = np.array(['ABC', 'D', 'EFGHI'])for i in range(n):abc(a)如果无法访问内存视图,我可以自己实现直接阵列访问吗?我需要避免功能abc(…)的GIL. 编辑1:回应Bi Rico的回答. 我...

python – OpenCV Cython桥漏泄内存【代码】

我编写了一个与Basler相机一起使用的VideoCapture类的实现.它是这样使用的:import cv2 import PyBaslerCameravideo = PyBaslerCamera.PyBaslerCamera() video.open(0) while True:ret, image = video.read()cv2.imshow("Test", image)cv2.waitKey(1)我的Cython文件如下所示:# distutils: language = c++ # distutils: sources = BaslerCamera.cppfrom cython.operator cimport dereference as deref from cpython.ref cimport Py...

python – 将预编译的Cython代码分发给Windows【代码】

对于一堂课,我写了一个数值问题的求解器.我的代码运行在一个IPython笔记本中,其中大部分代码都是纯Python NumPy matplotlib,但性能关键部分是用Cython编写的(并包含在IPython %% cython魔术中).教授喜欢我的解决方案,并要求我向一些本科学生提供,他将在另一个班级教授类似的主题作为参考资料.问题是,我不确定分发代码的最佳方式是什么. 我的主要问题是,大多数学生可能会运行Windows.在Windows上编译Cython代码是我最后一次做的噩梦...

链接 - 相关标签