问题标签 [swig]
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.
python - Python+SWIG+MinGW - setup.py 构建源码和pyd文件,python“找不到模块”
我正在使用 MinGW 使用 Swig 构建 PythonC 模块。当我告诉 Python 加载模块时,它失败并抱怨 Python 找不到模块。
有趣的是,该模块与我运行 Python 的目录位于同一目录中,并且该模块名为_mod.pyd
. (我还生成了一个在同一路径mod.py
中使用的文件。)_mod.pyd
令人沮丧,就像你不会相信!
它构建得很干净(我正在使用 distutils),并且我所有的 dll 都位于已暴露给 PATH 的目录中。
我在 Windows XP+MinGW 平台上(最新稳定的 MinGW)。
谢谢!
c++ - UTF-8 编码错误,需要帮助转换文本
我一直在为海地 (code.google.com/p/ccmts) 开发一个使用 C++ 后端 ( http://www.statmt.org/moses/?n=Development.GetStarted ) 和 Python的统计翻译系统驱动 C++ 引擎/后端。
我已将 UTF-8 Python 字符串传递给 C++ std::string
,进行了一些处理,将结果返回到 Python 中,这是字符串(从 C++ 打印到 Linux 终端时):
mwen bezwen 㨠d medikal
- 那是什么编码?它是双重编码的字符串吗?
- 我如何“修复它”使其可渲染?
- 以这种方式打印是因为我缺少字体或其他东西吗?
Python chardet库说:
但是,Python,当我运行 string/unicode/codecs decode 时,我得到了旧的:
UnicodeDecodeError:“ascii”编解码器无法解码位置 30 中的字节 0xc3:序数不在范围内(128)
哦,Python 将相同的字符串打印到标准输出中。
调用会打印以下内容:' mwen repr()
bezwen \xc3\xa3 \xc2\xa8 d medikal '
c++ - Ruby、C++、Swig 一些类没有被导出
我一直在努力让我的库 c++ Lavish 使用 swig 与 ruby 一起工作。问题是只能使用我包含在接口文件中的一些类,并且在编译包或加载 ruby 期间我没有收到任何错误。我的 swig 接口文件可以在这里查看。
什么有效,什么无效的一个例子。
我可以在 C++ 中创建 Display 对象,并且我已经在 swig 接口文件中包含了标头,所以我不知道在哪里寻找错误的地方。
有任何想法吗?
python - 在 Python 中访问 void 指针(使用 SWIG 或其他方法)
我一直在尝试使用 SWIG 来包装一个简单的库,该库使用 ioctl() 来填充如下结构:
data是指向缓冲区的指针,len是该缓冲区的长度。
我无法弄清楚如何将数据转换为 Python 字符串(或数组)。此外,我需要一种方法来释放析构函数中的缓冲区。任何建议表示赞赏。
perl - 我应该如何分发预构建的 perl 模块,以及我构建的 perl 版本是什么?
这可能是一个多部分的问题。背景:我们有一个本地 (c++) 库,它是我们应用程序的一部分,我们已经设法使用 SWIG 为这个库生成一个 perl 包装器。我们现在想将这个 perl 模块作为我们应用程序的一部分进行分发。
我的第一个问题 - 我应该如何分发这个模块?有没有标准的方法来打包预先构建的 perl 模块?我知道 ActiveState 发行版有 ppm,但我还需要为 linux 系统分发它。我什至不确定分发需要哪些文件,但我猜它至少是 pm 和 so 文件。
我的下一个问题 - 看起来我可能需要为我想要支持的每个版本的 perl 构建我的模块项目。我怎么知道我应该为哪个 perl 版本构建?是否有任何标准指南......或者更好的方法来构建一个可以与多个版本的 perl 一起使用的包?
对不起,如果我的问题没有意义 - 我对 perl 的编译模块方面相当陌生。
澄清:底层编译源是专有的(封闭源),所以我不能只为包提供源代码和适当的制作工件。希望我能,但在这种情况下不会发生。因此,我需要一个合理的方案来为我的模块打包预构建的二进制文件。
c++ - 将非全局 C++ 对象传递给 Lua 函数 (Swig)
我正在用 lua 扩展一个接口,我遇到了一个问题,我需要将指向对象的指针传递给 lua 代码来处理。这些类将通过 SWIG 包装,我可以使用 swig 通过 lua 实例化它们,但这会给我留下无用的对象。
我需要能够将回调对象以及表示事件的对象传递给 lua。我不能手动将回调定义为全局,因为这会引入一个不可接受的约束。
因此,对于一个通用示例,给定一个类 C 和一个带有 1 个参数的 lua 函数,我如何调用该 lua 函数,同时将 C 类型的 C++ 指针传递给它?
c++ - SWIG_NewPointerObj and values always being nil
I'm using SWIG to wrap C++ objects for use in lua, and Im trying to pass data to a method in my lua script, but it always comes out as 'nil'
Here is the lua code:
unit is always nil. I have checked and in the C++ code, the unit pointer is never invalid/null
I've also tried:
with identical results.
Why is this failing? How do I fix it?
python - Eclipse Pydev:抑制使用 swig 生成的 python 包装器中的 no-self 错误
当使用 swig 生成 python 包装器时,生成的 python 文件中的 python 包装器类没有显式的 self 参数,例如见下文:
我正在使用 eclipse 插件 Pydev 进行开发。当 Pydev 检测到没有显式 self 参数的方法时,它总是会显示错误。我知道消除错误的两种方法:首先,在 Pydev 首选项中禁用整个项目的错误检查。其次,将#@NoSelf 添加到有错误的每一行。我不想使用第一个,因为我仍然想为我的非 swig 生成的文件收到错误警告。显然第二个也不是很好,因为我必须手动完成,每次再次生成文件时,所有#@NoSelfs 都会消失。
我现在的问题是,有没有更好的方法来实现这一目标?
谢谢
ruby - 为什么我必须在 SVN 绑定中使用本地路径而不是 'svn://'?
我正在使用用 SWIG 构建的 Ruby SVN 绑定。这是一个小教程。
当我这样做时
我可以很好地访问存储库。但是当我这样做时
它失败了
当我从命令行执行此操作时,我确实得到了输出
任何想法为什么我不能使用 svn:// 协议?
编辑
这就是我最终做的,它有效。
享受。
python - Python、SWIG 和其他奇怪的东西
我有一个 USB 模块的固件,我已经可以通过 Visual C 控制。现在我想将它移植到 python。为此,我需要用 c 编写的章鱼库。我找到了一个由 SWIG 创建的名为 octopus_wrap 的文件!
然后我找到了一个makefile,上面写着:
python2.5: swig -python -outdir ./ ../octopus.i gcc -fPIC -c ../../liboctopus/src/octopus.c gcc -fPIC -c ../octopus_wrap.c -I /usr /include/python2.5 gcc -fPIC -shared octopus_wrap.o octopus.o /usr/lib/libusb.so -o _octopus.so
python2.4: swig -python -outdir ./ ../octopus.i gcc -fPIC -c ../../liboctopus/src/octopus.c gcc -fPIC -c ../octopus_wrap.c -I /usr /include/python2.4 gcc -fPIC -shared octopus_wrap.o octopus.o /usr/lib/libusb.so -o _octopus.so
赢:gcc -fPIC -c ../../liboctopus/src/octopus.c -I /c/Programme/libusb-win32-device-bin-0.1.10.1/include gcc -fPIC -c octopus_wrap.c -I /c/Python25/libs -lpython25 -I/c/Python25/include -I /c/Programme/libusb-win32-device-bin-0.1.10.1/include gcc -fPIC -shared *.o -o _octopus.pyd - L/c/Python25/libs -lpython25 -lusb -L/c/Programme/libusb-win32-device-bin-0.1.10.1/lib/gcc
清洁:rm -f 章鱼* _octopus*
install_python2.4: cp _octopus.so /usr/local/lib/python2.4/site-packages/ cp octopus.py /usr/local/lib/python2.4/site-packages/
install_python2.5: cp _octopus.so /usr/local/lib/python2.5/site-packages/ cp octopus.py /usr/local/lib/python2.5/site-packages/
我不知道如何处理这个问题,但据我所知 octopus.py 和 _octopus.so 是与 python 相关的结果输出文件吗?
幸运的是有人已经这样做了,所以我把这两个文件放到我的“python26/lib”文件夹中(希望它是 python 2.5 还是 2.6 没关系?!)
因此,当使用 USB 设备时,octopus.py 是可以使用的库!导入此文件会产生几个问题:
这是相关的第 7 行:
所以考虑 .so 文件有问题!我的下一步可能是什么?
我知道这有很多令人困惑的东西,但我希望你们中的任何人都能给我带来一些启发!
你提前