Python jaydebeapi对1.0.0的最新更新导致连接错误

Python jaydebeapi对1.0.0的最新更新导致连接错误,python,jaydebeapi,Python,Jaydebeapi,最近,jaydebeapi更新了,我现在无法使用旧代码连接。 这是连接时来自jaydebeapi源的文档: >>> import jaydebeapi >>> conn = jaydebeapi.connect('org.hsqldb.jdbcDriver', ... 'jdbc:hsqldb:mem:.', ... ['SA', ''], ...

最近,jaydebeapi更新了,我现在无法使用旧代码连接。

这是连接时来自jaydebeapi源的文档:

>>> import jaydebeapi
>>> conn = jaydebeapi.connect('org.hsqldb.jdbcDriver',
...                           'jdbc:hsqldb:mem:.',
...                           ['SA', ''],
...                           '/path/to/hsqldb.jar',)
>>> curs = conn.cursor()
我就是这样做的:

 53     curs, conn = None, None
 54     try:
 55         thisdir = os.path.dirname(os.path.abspath(__file__))
 56 
 57         join = os.path.join
 58         conn = jaydebeapi.connect('com.teradata.jdbc.TeraDriver',
 59                                   ['jdbc:teradata://%s/CHARSET=UTF8' % system, username, password],
 60                                   jars=[join(thisdir, 'lib/tdgssconfig.jar'),
 61                                         join(thisdir, 'lib/terajdbc4.jar')])
 62 
 63 
 64         curs = conn.cursor()
我得到的错误是:

  join(thisdir, 'lib/terajdbc4.jar')])
      File "/app/.heroku/python/lib/python2.7/site-packages/jaydebeapi/__init__.py", line 380, in connect
        jconn = _jdbc_connect(jclassname, url, driver_args, jars, libs)
      File "/app/.heroku/python/lib/python2.7/site-packages/jaydebeapi/__init__.py", line 199, in _jdbc_connect_jpype
        return jpype.java.sql.DriverManager.getConnection(url, *dargs)
    RuntimeError: No matching overloads found. at native/common/jp_method.cpp:121
我的代码以前可以工作,但随着新的更新,它停止了。有人能告诉我需要对代码做哪些更改吗

conn = jaydebeapi.connect('com.teradata.jdbc.TeraDriver',
                          'jdbc:teradata://%s/CHARSET=UTF8' % system,
                          [username, password],
                          jars=[join(thisdir, 'lib/tdgssconfig.jar'),
                                     join(thisdir, 'lib/terajdbc4.jar')])
我们应该做到这一点。使用JayDeBeApi 1.0.0,您现在可以将连接属性指定为字典:

conn = jaydebeapi.connect('com.teradata.jdbc.TeraDriver',
                          'jdbc:teradata://%s',
                          {'user': username, 'password': password,
                           'CHARSET': 'UTF8'},
                          jars=[join(thisdir, 'lib/tdgssconfig.jar'),
                                     join(thisdir, 'lib/terajdbc4.jar')])
通知了潜在的不兼容性。connect方法的参数已更改,应该比以前更清晰。文档也已正确更新

>>> help(jaydebeapi.connect)

connect(jclassname, url, driver_args=None, jars=None, libs=None)
    Open a connection to a database using a JDBC driver and return
    a Connection instance.

    jclassname: Full qualified Java class name of the JDBC driver.
    url: Database url as required by the JDBC driver.
    driver_args: Dictionary or sequence of arguments to be passed to
           the Java DriverManager.getConnection method. Usually
           sequence of username and password for the db. Alternatively
           a dictionary of connection arguments (where `user` and
           `password` would probably be included). See
           http://docs.oracle.com/javase/7/docs/api/java/sql/DriverManager.html
           for more details
    jars: Jar filename or sequence of filenames for the JDBC driver
    libs: Dll/so filenames or sequence of dlls/sos used as shared
          library by the JDBC driver

谢谢,我还尝试在requirements.txt文件中将版本锁定为0.2.0,但似乎不起作用
jaydebeapi==0.2.0
但我发布的代码是否有效?确实应该。请仔细检查引号、大括号等。