问题标签 [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.

0 投票
1 回答
1343 浏览

python - 在 python 中导入时重定向 C 函数的标准输出的问题

我编写了一个简单的 C 模块,它使用 printf 打印到标准输出。

后来,我围绕它做了一个包装器,SWIG这样我也可以func_print在我的 python 程序中使用。在这个程序中,我已将标准输出重定向到一个 textctrl 小部件。正如预期的那样,我使用print打印的任何内容都可以在 textctrl 小部件中正确打印。

但是,当我调用 C 函数func_print()(来自 sample.py)时,它会打印到终端而不是 textctrl 小部件。

不知何故,C 模块中的 for 函数似乎stdout没有按预期重定向。请帮我解决这个问题。谢谢你。

0 投票
3 回答
8632 浏览

gcc - "...can't figure out the architecture type of..." problem when compiling Python C-extension with gcc

I just upgraded from Snow Leopard to Lion, and an old python c-extension that I had to update didn't want to compile properly. I don't really know what to do here. Anyone who could help me out so it compiles ok? It compiled just fine back in Snow Leopard.

0 投票
2 回答
5826 浏览

python - 编译器找不到 Python.h

我对C有点陌生,我似乎无法做我想做的事。我需要为 C 函数做一些 Python 绑定,我想我可以解决这个问题。但是有一条小线不起作用。

我明白了:

我什么都试过了。我只是先将 Python.h 放在与我的项目相同的文件夹中。然后我将文件名放在链接器下的库和对象文件中。然后我对 python31.lib 做了同样的事情,然后我把 python31.lib 所在的目录放在我的 PATH 变量中。没有什么能让我越过这条线。我在网上看到很多针对 Linux 的解决方案,但没有针对 Windows 的解决方案。请帮忙!

0 投票
1 回答
1374 浏览

python - Python:PyDateTime_FromTimestamp 的用法

我正在开发一个 python c-extension,并希望创建一个带有 unix 时间戳的 python datetime 对象实例。

在文档站点(http://docs.python.org/c-api/datetime.html)上,我找到了 PyDateTime_FromTimestamp() 函数,它根据输入参数返回一个新的引用。

描述如下: 给定一个适合传递给 datetime.datetime.fromtimestamp() 的参数元组,创建并返回一个新的 datetime.datetime 对象。

我尝试使用 PyFloat_Object 调用该函数,但该函数始终返回 NULL(即使我只是输入 0)。

有人有一个例子,我必须如何调用该函数,或者可以提示需要什么样的参数元组才能使其工作?

谢谢!

0 投票
1 回答
94 浏览

generator - 将生成器功能添加到 Python/C 类

我已经使用 Python/C API 在 C 中构建了一个类。我现在需要遍历 C blob 中的数据项。返回 PyList 是不可取的,因为长度 > 50K。有没有办法提供类似生成器的功能?

我的一个解决方案是将类包装在另一个纯 python 类中,并在该级别编写生成器函数。还有其他方法吗?

0 投票
3 回答
243 浏览

python - 导入使用 OpenMP 的 python 扩展后显示 PyQt4 窗口时崩溃

我正在开发一个使用我自己开发的 C 扩展模块的 python 应用程序。扩展模块执行一些繁重的数字运算并使用 OpenMP。我最近使用 PyQt4 向我的 Python 应用程序添加了一些 GUI 组件。但是,当我显示一个窗口时,应用程序在窗口完全绘制之前崩溃(窗口很快就会显示出来)。我能够找到问题所在:当我在没有 OpenMP 支持的情况下编译我的数字运算 C 扩展时,窗口显示正常并且一切正常。我想这与 OpenMP 和 Qt 之间的线程有关。有没有人做过类似的观察?

0 投票
1 回答
854 浏览

python - Python C 扩展通过引用传递参数

我正在尝试为原型为的函数(libFunc)编写一个 python C 包装器

如何使用 PyArg_ParseTuple 设置函数调用的参数。这是我目前拥有的

我可以使用 byref 对 ctypes 做同样的事情。

0 投票
1 回答
1065 浏览

python - 在 c-extension 中使用 python 日志记录模块

我正在编写 python 脚本,并且正在使用 python 日志记录模块将一些信息写入日志文件(请参阅http://docs.python.org/howto/logging.html)。

这是一个小例子(也来自提到的页面):

现在我想为 python 创建一个 c 扩展,我想在我的程序中导入它。

问题是:如何从我的 c 代码在我的日志文件中写入信息?有没有办法使用 python c 扩展中的日志记录模块?

感谢您的任何评论!

0 投票
4 回答
2789 浏览

python - 发布 GIL 的成本是多少?

假设我有一个 C 扩展函数,它做的事情完全独立于 Python 解释器。有什么理由发布 GIL?

例如,是否有任何理由不编写这样的代码(除了诸如可读性和避免微优化之类的问题——这些问题很重要,但与我的问题并不真正相关)?

显然,这是一些性能可能无关紧要的琐碎代码。但是有什么性能原因不在这里发布 GIL 吗?还是应该只为更多 CPU 密集型代码发布 GIL?

0 投票
1 回答
2051 浏览

python - ImportError:没有模块名称多数组

所以我在 PyDev 中使用 IronPython,我正在尝试导入 numpy。但是,当我收到以下错误时:

是因为只有一个multiarray.pyd文件而不是一个multiarray.py文件吗?我能做些什么呢?提前致谢。

编辑:还有一件事,所以当我在 python 下载附带的 Python IDLE 中使用 import numpy 时,它可以工作,并且我使用的是 Windows 7。