首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Python库从Python2转换为Python3

如何将Python库从Python2转换为Python3
EN

Stack Overflow用户
提问于 2019-12-07 15:57:32
回答 3查看 153关注 0票数 1

我有一个使用"PyOPC“库(https://github.com/ibh-systems/pyopc)的代码。我通过在开头和结尾添加()修复了所有print语句。

但是当我安装库的时候,我得到了更多的错误。

例如:

代码语言:javascript
复制
  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中的正确语法?

EN

回答 3

Stack Overflow用户

发布于 2019-12-07 15:59:47

参数解包已被移除...这样的事情

代码语言:javascript
复制
def foo(x, (y, z)):
    ...

应更改为

代码语言:javascript
复制
def foo(x, _yz):
    (y, z) = _yz
    ...
票数 3
EN

Stack Overflow用户

发布于 2019-12-07 16:15:31

这个在线工具可能会对基于https://docs.python.org/2/library/2to3.htmlhttps://www.pythonconverter.com/有所帮助

编辑:

一些更改

1)打印函数语法由print "Message"改为print("Message")

2)用range代替xrange

3)异常引发语法was raise IOError, "file error"现在为raise IOError("file error")

4)异常处理是

代码语言:javascript
复制
except NameError, err:
    print err, '--> our error message'

是现在

代码语言:javascript
复制
except NameError as err:
    print(err, '--> our error message')

5)用next(my_generator)代替my_generator.next()

6) input()现在总是返回一个字符串

有关更多更改,请访问https://sebastianraschka.com/Articles/2014_python_2_3_key_diff.html

票数 2
EN

Stack Overflow用户

发布于 2019-12-07 16:00:13

代码语言:javascript
复制
def Read(self,IPH_and_inOptions_and_outOptions):
except ZSI.FaultException as z:
raise AttributeError('Unknown complex type %s for filling'%buf)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59224081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档