gcc/cython/distutils包装器,用于直接从python编译cython和c代码

Cpyx的Python项目详细描述


cpyx是一个实用程序脚本,用于使用distutils或命令行cython和gcc自动生成c和cython代码。numpy在这两种情况下都受支持。

两个核心函数是c c和cpyx,它们分别编译c源和cython+c源。

*“cc”从所有包含的输入构建共享库,使用路径解析和引号来帮助调试问题(gcc命令应该从任何目录逐字运行)。

*“c pyx”将多个c和cython源构建到一个python扩展模块中。
如果use_distutils为true,则从所有c和pyx源编译一个单片模块。
如果use_distutils为false,这首先使用“c c”从给定的c源编译共享库,然后使用cython从所有给定的pyx文件生成c文件,然后使用gcc将生成的c源编译成链接到共享库的扩展模块。这更复杂,但通常更容易调试。

因此,如果cython或gcc(或libpython)位于非标准位置,您可能会遇到问题。
如果发生这种情况,并且cpyx失败,您可以在cpyx正在查找的位置放置一个指向真实文件的链接,也可以进入cpyx.py并编辑顶部的路径以匹配您的路径(只需确保您正在查看正确的操作系统即可)。

这样,即使cpyx不起作用,也可以使用它来帮助您学习如何使用cython和gcc;-)
cpyx非常简单(主要的两个函数只有大约100行代码)。所以很容易处理。



0.2版中的新功能:
*所有功能都进行了显著的修改,函数名也发生了更改*(旧的cdll和cpyx/cpyxlib分别变为“cc”和“cpyx”。
由于cython现在使用“cython.inline”自动支持内联cython代码,因此已放弃对内联cython代码的支持。

提取C函数信息的有用实用工具(即使用模板生成代码):
*get_function_raw_arguments--将所有参数作为单个字符串获取(括号内的所有内容)
*get_function_args--为每个参数获取字符串
*get_function_types_和_variables--为每个参数获取[type,variable]列表argument
*rebuild_function_signature—获取完整函数签名的格式良好的版本



理想情况下,cpyx应该在任何安装了gcc、cython和python/numpy的地方工作。
0.1分支经过了相对良好的测试,并在windows(xp/vista/7)、linux(ubuntu)和mac os x(leopard/snow leopard)上工作。0.2分支已经在ubuntu linux上进行了非常彻底的测试,但是让我知道如果在任何操作系统上它对你都不起作用。
ditutul可能会或可能不会在Windows上使用MINW
BR/>我知道还有其他工具(最明显的是PyxPixand Sakes的MISC/Cython .Py)来做同样的事情(而且以更酷的方式)。祝你开心!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ApachePOI在类加载时忽略java扩展库   从Scala(和Java)访问DRb对象(例如Ruby队列)的最佳方式是什么?   java GAE支持新的GCM(在I/O 15发布)了吗?   java改造未检索AccessToken   oracle Toplink和java存储word或pdf文件   java如何改革我的Android应用程序,使其与layout()函数一起工作   如何从Java方法返回多个对象?   Java main未运行<terminated>   java使用增强的for循环搜索LinkedList   java Dropwizard筛选器优先级客户筛选器与CORs筛选器   java 227进入被动模式(124153,94,30242138)   安卓 java。编译时lang.NoSuchMethodError   在java中通过socket发送文件   java MapStruct不同的实现:mvn安装与运行   java为什么我的程序找不到我要扫描的文本文件?   带有HTML的java JLabel未正确设置宽度   java Hibernate导致具有@ManyToMany双向关系的无限循环   Java中的引用传递   java如何使用tomcat分别配置应用服务器和web服务器?   java Selenium将文本发送到密码字段