我有一个使用“ PyOPC”库(https://github.com/ibh-systems/pyopc)的代码。我通过在开头和结尾添加print
来修复所有()
语句。
但是,当我安装库时,出现了更多错误。
例如:
File "c:\anaconda3\lib\site-packages\PyOPC-0.1-py3.7.egg\PyOPC\servers\esdsrv.py", line 90
def Read(self,(IPH,inOptions,outOptions)):
^
SyntaxError: invalid syntax
File "c:\anaconda3\lib\site-packages\PyOPC-0.1-py3.7.egg\PyOPC\utils.py", line 313
def print_options((ilist,Options)):
^
SyntaxError: invalid syntax
File "c:\anaconda3\lib\site-packages\PyOPC-0.1-py3.7.egg\PyOPC\XDAClient.py", line 46
except ZSI.FaultException, z:
^
SyntaxError: invalid syntax
File "c:\anaconda3\lib\site-packages\PyOPC-0.1-py3.7.egg\PyOPC\OPCContainers.py", line 257
raise AttributeError,'Unknown complex type %s for filling'%buf
^
SyntaxError: invalid syntax
有什么简单的方法可以解决这些问题?我列出了四个主要错误,有人可以告诉我Python3的正确语法吗?
答案 0 :(得分:3)
参数拆包已删除...类似
def foo(x, (y, z)):
...
应更改为
def foo(x, _yz):
(y, z) = _yz
...
答案 1 :(得分:2)
此在线工具可能会帮助https://www.pythonconverter.com/ 基于https://docs.python.org/2/library/2to3.html
编辑:
某些更改
1)打印功能语法已从print "Message"
更改为print("Message")
2)xrange
替换为range
3)引发异常的语法是raise IOError, "file error"
现在是raise IOError("file error")
4)异常处理为
except NameError, err:
print err, '--> our error message'
现在是
except NameError as err:
print(err, '--> our error message')
5)my_generator.next()
替换为next(my_generator)
6)input()
现在总是返回字符串
可以在https://sebastianraschka.com/Articles/2014_python_2_3_key_diff.html
上找到更多更改答案 2 :(得分:1)
def Read(self,IPH_and_inOptions_and_outOptions):
except ZSI.FaultException as z:
raise AttributeError('Unknown complex type %s for filling'%buf)