问题标签 [python-c-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 我可以在扩展 Python 时使用 C++ 功能吗?
Python 手册说您可以在 C 和 C++ 中为 Python 创建模块。在使用 C++ 时,您可以利用类和模板之类的东西吗?它不会与其他库和解释器产生不兼容吗?
python - 在 valgrind 下运行 python 显示很多内存错误是否正常?
我尝试在我的 Python C 扩展中调试内存崩溃,并尝试在 valgrind 下运行脚本。我发现 valgrind 输出中有太多“噪音”,即使我运行了简单的命令:
Valgrind 输出充满重复信息,如下所示:
Slackware 12.2 上的 Python 2.5.2。
这是正常行为吗?如果是这样,那么 valgrind 可能不适合在 Python 中调试内存错误?
python - 如何获取 distutils 用于构建的拱字符串?
当我使用 构建 ac 扩展python setup.py build
时,结果是在名为的目录下创建的
lib.
操作系统,CPU和Python版本更改后的部分。
有没有办法可以从 python 访问适合我当前架构的字符串?希望以一种保证与 distutils 正在创建的方式相匹配的方式。
python - Python C-API 模块退出处理程序 - atexit 等价物?
我正在使用 Python 2.6.4 版
当我的扩展模块退出/卸载时,我必须从 C 库调用一个函数。对于 C 扩展模块,atexit 的等价物是什么?
python - 如何在 Pyrex 中定义初始化的 C 数组?
我想在 Pyrex 中定义初始化的 C 数组,例如:
Pyrex 中的等价物是什么?
只是数组是
但是我怎样才能让它用我的值初始化呢?
python - python c扩展,mac os上的dlopen问题
我采用了一个作为二进制库(.a)和头文件分发的库,针对它编写了一些 c++ 代码,并希望将结果包装在一个 python 模块中。
我在这里做过。
问题是在 Mac OSX 上导入此模块时(我尝试过 10.5 和 10.6),我收到以下错误:
这看起来像 Carbon 框架中定义的符号没有被正确解析,但我不知道该怎么做。我提供-framework Carbon
给distutil.core.Extension
'sextra_link_args
参数,所以我不确定我还应该做什么。
任何帮助将非常感激。
更新:
setup.py 生成的编译行如下所示:
链接器行如下所示:
otool
报告:
更新 2:在 MacOS 10.5 上,将 dlopen 标志从默认的 修改RTLD_NOW
为RTLD_LAZY
解决问题。但是,这不适用于 Mac OS 10.6。
在 10.6 上,以下序列允许库正常运行,尽管我不确定为什么:
- python setup.py build -v
- 再次手动运行链接器行(由 setup.py 打印到控制台)。
- python setup.py 安装
我仍在寻找有关如何使其正常工作的好答案。谢谢!
python - 在 Windows 上为 Python 2.7 构建 lxml
我正在尝试在 Windows 64 位机器上为 Python 2.7 构建 lxml。我找不到 Python 2.7 版本的 lxml 鸡蛋。所以我从源代码编译它。我正在按照本网站上的说明进行操作
在静态链接部分下。我收到错误
谁能帮我这个?我尝试设置 Microsoft Visual Studio 的路径。我可以从命令行运行 vcvarsall.bat 。但是 python 有问题
python - Python C API:打开 PyObject 类型
我有一些代码可以将 Python 与 C++ 接口,这些代码运行良好,但每次我看到它时,我都认为必须有更好的方法来做到这一点。在 C++ 方面,有一个“变体”类型可以处理固定范围的基本类型——int、real、string、变体向量等。我有一些代码使用 Python API 从等效的 Python 类型转换。它看起来像这样:
问题是链式 if-else ifs。它似乎在调用一个 switch 语句,或者一个由类型标识符作为键的创建函数的表或映射。换句话说,我希望能够写出类似的东西:
根据对 API 文档的浏览,直接在此处获取“typeID”的最佳方法并不明显。我看到我可以做这样的事情:
这显然让我快速了解类型信息,但是使用它与我感兴趣的有限类型集相关的最简洁的方法是什么?
python - PyArg_ParseTuple 导致分段错误
我正在尝试从我的扩展程序中调用 ac 函数,并将问题缩小到这个测试用例。
任何想法我可能做错了什么。(Python 版本 2.6.4)。
python - 如何在 python 中使用 C 扩展来绕过 GIL
我想在 Python 中跨多个内核运行一个 cpu 密集型程序,并试图弄清楚如何编写 C 扩展来做到这一点。有这方面的代码示例或教程吗?