【问题标题】:Python compatibility issue?Python兼容性问题?
【发布时间】:2018-06-02 11:37:45
【问题描述】:

Python 对一些过去运行时没有任何问题的函数抛出错误。我在我的系统上安装了 pycharm 并升级了一些软件包。

def __init__( self, dbUrl, username, password, use_service_name=False ):
    dsn = cx_Oracle.makedsn(dbUrl,1521, service_name="TUNET1") if use_service_name else cx_Oracle.makedsn(dbUrl,1521,"TUNET1")
    self.dbConn = cx_Oracle.connect(username, password,  dsn)

TypeError: makedsn() 没有关键字参数

以下代码也在另一个代码中。

TypeError: normalize() 参数 2 必须是 unicode,而不是 str

这是与 python 的兼容性问题吗?

【问题讨论】:

    标签: python python-2.7 pycharm cx-oracle


    【解决方案1】:

    你的问题基本上是无法回答的。

    错误信息告诉你不能传入service_name="TUNET1"。要弄清楚它应该导航到makedsn 方法(导航-> 声明)并查看签名。

    第二条错误消息告诉您将传入的字符串转换为 unicode。

    您确定 PyCharm 使用的是您认为的解释器吗?

    【讨论】:

    • 不只是makedsn(),突然之间,很多代码现在不接受关键字参数,并要求使用unicode而不是str。以前可以在其他机器上使用相同的代码。
    【解决方案2】:

    问题是安装了多个版本的 cx_Oracle。我删除了一个,一切又恢复了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2016-08-28
      • 2014-02-12
      相关资源
      最近更新 更多