问题标签 [python-bindings]

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 回答
4556 浏览

c# - 如何将 python 绑定添加到 C#?

当你想从 python 调用 C 时,你编写一个这样的模块:

http://docs.python.org/extending/extending.html

现在,我有一个问题:

我想用 C# 编写一个用于 Python 的模块。

如何让 C# 与本机 Python 交互?
(注意:我对 Python.NET 或 IronPython 不感兴趣)。

0 投票
3 回答
6809 浏览

python - Cython 字节到 C char*

我正在尝试为 CPython 编写一个 Cython 扩展来包装 mcrypt 库,以便我可以将它与 Python 3 一起使用。但是,我在尝试使用其中一个 mcrypt API 时遇到了段错误的问题。

失败的代码是:

现在,按照我对 Cython 文档的理解,第 3 行的赋值应该将缓冲区(Python 3 中的一个对象)的内容复制到 C 字符串指针。我认为这也意味着它将分配内存,但是当我进行此修改时:

它仍然因段错误而崩溃。它在 mcrypt_generic 内部崩溃,但是当我使用纯 C 代码时,我能够让它工作得很好,所以必须有一些我不太了解 Cython 如何在这里处理 C 数据的东西。

谢谢你的帮助!

ETA:问题是我的一个错误。在清醒了太多小时后,我正在研究这个(这不是我们在某个时候都做过的事情吗?)并且错过了一些愚蠢的事情。我现在拥有的有效代码是:

它可能不是世界上最有效的代码,因为它会复制一份来进行加密,然后再复制一份到返回值。不过,我不确定是否可以避免这种情况,因为我不确定是否可以获取新分配的缓冲区并将其作为字节串原地返回给 Python。但是现在我有了一个工作函数,我也将实现一个逐块的方法,这样就可以提供一个可迭代的块用于加密或解密,并且能够在没有整个源代码的情况下做到这一点并同时将所有目标都放在内存中-这样,就可以加密/解密大文件,而不必担心在任何时候在内存中最多保存三个副本...

谢谢大家的帮助!

0 投票
2 回答
884 浏览

python - 是否可以在阻塞并可能回调 Python 的 C 函数之前释放 GIL?

我正在包装一个执行阻塞操作(选择)然后处理传入消息的 C 函数。我的理解是,当 C 函数要阻塞时,在允许其他线程运行的同时调用它的正确方法是:

但是,这个函数碰巧将回调指针作为参数。在处理由 C 函数预处理的传入消息时调用此回调。我已经成功地将这个回调包装在一个调用的函数中PyEval_CallObject(),允许我向它传递一个 Python 回调。

现在我正在添加线程支持,我想知道是否可以同时:

  • 在调用此阻塞操作之前释放 GIL。
  • 让这个阻塞操作安全地回调到 python 解释器中。

这会引起问题吗?如果是这样,有没有办法解决它?

谢谢。

0 投票
2 回答
139 浏览

swig - 装订软件

除了 SWIG 之外,是否有用于语言绑定的软件。还有哪个最有效?我正在寻找 C++ 到 Python 绑定的效率。

0 投票
2 回答
1601 浏览

swig - PyPy - SWIG - QuickFix 组合

PyPy 有一些兼容性限制,尤其是关于 CPython C API。

我使用带有预编译 SWIG 绑定的QuickFix包,我正在考虑将它与 PyPy 一起使用。由于我不精通 C API 和 SWIG,我的问题是:

  • PyPy 的 C API 兼容性限制是否会阻碍使用 SWIG?你能解释一下为什么吗?
  • 我是否需要重新编译 SWIG 绑定才能专门使用 PyPy?那可能吗?如何?
0 投票
3 回答
6085 浏览

vlc - 使用 VLC 的 Python 绑定重复单个电影:什么是 psz_name

我正在尝试编写一个反复动态播放单个电影文件的小应用程序。我用 Python 编写的,使用这些VLC-Python 绑定

我会说这不会那么难,即使文档非常稀疏,我也可以在屏幕上没有任何其他内容的情况下获得一部电影全屏,甚至可以更改我想要播放的文件。我不能简单地让一部电影重复

我使用以下代码:

一个 --repeat-tag 这里:

还有一个'--repeat'标签:
self.media = self.vlc_inst.media_new(NEW_VIDEO_NAME + str(currentVideoN) + VIDEO_EXTENSION, '--repeat')

这些重复标签似乎没有任何作用。Instance类确实有一个函数vlm_set_loop(self, psz_name, b_loop)但我不知道mrl应该是什么。在原始代码中,我发现它应该是一个字符数组(字符串),但我不知道这应该是什么类型的字符串。

谁有线索?

0 投票
1 回答
752 浏览

python - CollabNet 的 python svn 绑定的替代方案是什么?

CollabNet提供的python svn 绑定的替代方案是什么(这里有 2 个目录:svnlibsvn,第二个有很多预编译库)?它的问题在于它无法配置为在 Python 上运行 Windows 版本。我们已经完成了在各种论坛上所写的内容,但它没有奏效。

充其量是完全用python编写的包——没有编译问题。我知道pysvn,但它似乎具有客户端功能(基于签出代码)而不是服务器端功能(基于提供的存储库路径,例如svnlook)。

0 投票
2 回答
852 浏览

python - Quickfix - 在 Python 中设置序列号

我使用Quickfix附带的 Python 绑定,我想通过它设置序列号(请参阅原因)。我怎样才能做到这一点?

我在SWIG绑定中发现了以下内容:

它需要两个参数:一个Session对象和一个int序列号。
我怎样才能得到Session对象?
还是有另一种设置序列号的方法?

0 投票
2 回答
93320 浏览

python - 有没有办法使用 Selenium 和 Python 绑定执行鼠标悬停(悬停在元素上)?

读到这里,显然曾经有一个RenderedWebElement带有hover方法的类。然而,它是专门为 Java 制作的(我已经搜索了 Python 绑定文档但无济于事),并且已经被 Java 弃用。

Ahover也不能使用action_chains或使用WebElement对象来执行。

关于如何为 Python 执行此操作的任何想法?我来过这里,但它使用RenderedWebElement,因此没有太大帮助。

我正在使用:Python 2.7、Windows Vista、Selenium 2、Python 绑定

编辑:mouse_over一个selenium.selenium.selenium对象的方法,但如果没有独立服务器已经运行,我无法找到创建实例的方法。

编辑请仔细阅读标记为答案的回复评论,以防您像我一样有误解!

0 投票
1 回答
523 浏览

python - 在 Python - Selenium2 中,如何设置 webdriver 实例在加载页面时应该等待的时间,然后再给出超时异常?

我通过使用超时作为第三个参数来实例化 webdriver 来尝试它,如下所示:

然后使用驱动程序来获取这样的网页

但是,它会无限期地等待页面加载。还尝试了WebDriverWait(self.driver, 3)self.driver 是 webdriver 实例的地方,但无济于事。

操作系统-Windows Vista;蟒蛇2.7;硒2; Python-Selenium 绑定 2.8

有任何想法吗?

编辑:似乎它不存在于 python 并且已经提出了相同的请求