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第三方库


热门话题
java数组。按字符串排序   如何使用Netbeans设置Java打印的页面大小   java有没有一种方法可以获取sparkjava/嵌入式jetty服务器的主线程执行器?   正则表达式Java正则表达式:需要更简单的解决方案   无法使用java解析XML   MySQL Java JDBC:如何获取自动递增列的名称?   java错误:“限定符必须是表达式”Android Studio   Spring+java。lang.NoClassDefFoundError:weblogic/logging/LogEntryFormatter   java将JList插入GridLayout   listview中的java Get selected复选框   使用CriteriaBuilder的java JPA左外部联接会导致错误:不允许部分对象查询维护缓存或进行编辑   java循环双链接列表addToHead和print   java更好地检测三角形按钮(libgdx)   java ConcurrentHashMap迭代保证人   java如何获取控制台。通过webdriver记录信息?   java Javafx阶段为空   java如何使用apachetika从excel文件中访问空白单元格   java使用SQlite数据库列填充AutoCompleteTextView   java如何在不使用idea构建整个maven项目的情况下运行主方法?