我试图让pywbem在Python 3.2中工作(它在2.6中运行正常)但是在mof_compiler.py中的这部分代码上构建失败:
File "pywbem-0.7.0\mof_compiler.py", line 1341
print s
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
它是一个宏,定义如下:
def _print_logger(s):
print s
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这是无效的,请解释如何在Python 3.2中做同样的事情.
注意:我对Python几乎没有经验.
PS:我已经对3.2的代码做了一些小改动,比如改变
except CIMError, ce:
Run Code Online (Sandbox Code Playgroud)
至
except CIMError as ce:
Run Code Online (Sandbox Code Playgroud)
根据Lennart Regebro的回答,我发现了其他一些变化(将它们置于此处,因为它可能对其他人有用).
exec "import %s as lextab" % tabfile -> exec ("import %s as lextab" % tabfile)
raise ValueError,"Expected a string" -> raise ValueError("Expected a string")
Run Code Online (Sandbox Code Playgroud)
这不是一个宏,它是一个函数定义,而在Python 3中,print语句现在是一个函数.所以要做print(s).
Python 2和Python 3之间的变化列表如下:http://docs.python.org/release/3.0.1/whatsnew/3.0.html 它不是那么容易阅读,但我不知道是否有一个更好的在线(虽然存在书籍).
如果您打算使用Python 3,那么获得Python 3书籍可能会很有用.现在有几个.或者至少参考Python 3文档:http://docs.python.org/release/3.2/它有一个不错的教程.
| 归档时间: |
|
| 查看次数: |
2585 次 |
| 最近记录: |