56得票4回答
pylint 1.4在所有C扩展上报告E1101(no-member)错误

我们长期以来一直是pylint的粉丝。它的静态分析已经成为我们所有Python项目中至关重要的一部分,并节省了大量时间来追踪难以捉摸的错误。但是从1.3升级到1.4后,几乎所有编译的C扩展都会产生E1101(未知成员)错误。 之前在pylint 1.3下完美运行的项目现在会对几乎每个C扩展成...

52得票1回答
使用Python的C API创建一个对象。

假设我已经定义了我的对象布局:typedef struct { PyObject_HEAD // Other stuff... } pyfoo; ...以及我的类型定义:static PyTypeObject pyfoo_T = { PyObject_HEAD_INIT...

50得票9回答
Cython编译的C扩展:ImportError: 动态模块未定义init函数。

我刚刚使用Cython将我的C库的一部分编译成了扩展,作为一个“概念证明”。我设法解决了代码中的问题(除了const正确性问题之外),最终成功构建了扩展。但是,当我尝试导入新创建的扩展时,出现了以下错误:ImportError: dynamic module does not define i...

46得票6回答
在Windows x64中运行Cython - 致命错误C1083:无法打开包含文件:“basetsd.h”:没有那个文件或目录。

我一直在尝试在Windows 7系统上为Python 2.7安装Cython,特别是我希望全部使用64位。(如果您想知道的话,我需要Cython是因为它是我需要用于某些专业数值分析的另一个软件包的组成部分。并且x64对于存储大型数据集可能是一个优势。) 所以我从官方网站下载了x64 Pyth...

36得票2回答
在Python中,什么是PyObject?

简短版本 我最近在 Python 代码中看到一个函数的返回类型被指定为 PyObject,在文档中有说明。那么,PyObject 是什么? 详细版本 虽然我不是 C/C++ 程序员,但当我在上面链接的文档中看到 PyObject 时,我通过 Google 发现 PyObject 是使用 Py...

36得票2回答
Python中的面向方面编程(AOP)

可能有重复: Python有任何AOP支持库吗? 我熟悉Java语言的AspectJ扩展。 我想知道Python是否有类似的东西。 别误会,我的意思不是库,而是像Java中的AspectJ一样的语言扩展。

28得票2回答
编译器找不到Py_InitModule()..它已经被弃用了吗?如果是的话,我应该使用什么?

我试图为Python编写一个C扩展。使用以下代码时,我收到编译器警告:implicit declaration of function ‘Py_InitModule’ 运行时出现以下错误:undefined symbol: Py_InitModule 我已经花费了数小时的时间进行搜索,但没有找...

25得票3回答
如何构建和分发依赖于第三方库libFoo.so的Python/Cython软件包

我编写了一个依赖于一些C扩展的Python模块。这些C扩展又依赖于几个已编译的C库。我想将这个模块与所有依赖项捆绑在一起进行分发。 我已经准备了一个最小示例(它可以在GitHub上完整地找到)。 目录结构如下:$ tree . . ├── README.md ├── poc │   ├──...

25得票4回答
使用C扩展或Cython优化复杂Python应用程序的教程

Python社区提供了有用的参考资料,展示了如何对Python代码进行性能分析,以及C或Cython中Python扩展的技术细节。但是,对于非平凡的Python程序,我仍在寻找以下内容的教程: 如何识别将受益于转换为C扩展的热点 同样重要的是,如何确定不会受益于转换为C扩展的热点 最后,如...

23得票1回答
如何构建Python C扩展,以便我可以从一个模块中导入它。

我有一个用 distutils 打包的 Python 项目,其中有许多子模块。我希望在其中一些子模块中使用 C 构建一些 Python 扩展,但我不知道如何使 Python 扩展位于子模块中。以下是我正在寻找的最简单示例: 这是我的 Python 扩展 c_extension.c:#incl...