使 SWIG 生成 python 3.2 print() 语句
我感觉这个问题有一个非常简单的答案。
我正在尝试生成 python 3.2 SWIG 包装器。 SWIG 应该可以与 3.2 一起使用,一切都很好,并且 DLL 已构建。但是,当我尝试导入我的模块时,我得到:
>>> import pywii
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pywii.py", line 645
print 'Searching for wiimotes... Turn them on!'
^
SyntaxError: invalid syntax
所以,SWIG 显然正在生成 Python 2 代码。我如何让它使用 Python 3 来代替?谢谢。
I have feeling there's a very simple answer to this.
I'm trying to generate a python 3.2 SWIG wrapper. SWIG is supposed to work with 3.2, and everything works great, and the DLL is built. But, when I try to import my module I get:
>>> import pywii
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pywii.py", line 645
print 'Searching for wiimotes... Turn them on!'
^
SyntaxError: invalid syntax
So, SWIG is clearly generating Python 2 code. How do I make it do Python 3 instead? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我很惊讶 SWIG 生成的 Python 文件会使用
print
。您确定这是生成的 Python 包装器的一部分吗?生成的包装器应适用于 Python 2 和 Python 3,但有一个特定于 Python 3 的开关 (-py3
) 可以启用某些 Python 3 功能。I'm surprised a SWIG-generated Python file would use
print
. Are you sure that is part of the generated Python wrapper? The generated wrapper should work with both Python 2 and Python 3, but there is one Python 3-specific switch (-py3
) that enables some Python 3 features.