使用IPython notebook和SQLAlchemy连接到IBM Informix数据库的问题

时间:2015-03-19 16:17:40

标签: python sqlalchemy informix

我已经为SQLAlchemy安装了SQLAlchemy,ipython-sql和IBM_DB支持。最后一个链接是在SQLAlchemy网站上找到的链接https://code.google.com/p/ibm-db/wiki/README

我在ipython中使用python3作为我的内核,当然我使用了easy_install3

%load_ext sql

%sql ibm_db_sa://bpadmin:bpadmin@192.168.2.128/studAdmin

我收到以下错误:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-ca75a37d0cce> in <module>()
----> 1 get_ipython().magic('sql ibm_db_sa://bpadmin:bpadmin@192.168.2.128/studAdmin')

/usr/lib/python3/dist-packages/IPython/core/interactiveshell.py in magic(self, arg_s)
   2164         magic_name, _, magic_arg_s = arg_s.partition(' ')
   2165         magic_name = magic_name.lstrip(prefilter.ESC_MAGIC)
-> 2166         return self.run_line_magic(magic_name, magic_arg_s)
   2167 
   2168     #-------------------------------------------------------------------------

/usr/lib/python3/dist-packages/IPython/core/interactiveshell.py in run_line_magic(self, magic_name, line)
   2085                 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
   2086             with self.builtin_trap:
-> 2087                 result = fn(*args,**kwargs)
   2088             return result
   2089 

/usr/local/lib/python3.4/dist-packages/sql/magic.py in execute(self, line, cell, local_ns)

/usr/lib/python3/dist-packages/IPython/core/magic.py in <lambda>(f, *a, **k)
    190     # but it's overkill for just that one bit of state.
    191     def magic_deco(arg):
--> 192         call = lambda f, *a, **k: f(*a, **k)
    193 
    194         if isinstance(arg, collections.Callable):

/usr/local/lib/python3.4/dist-packages/sql/magic.py in execute(self, line, cell, local_ns)

/usr/lib/python3/dist-packages/IPython/core/magic.py in <lambda>(f, *a, **k)
    190     # but it's overkill for just that one bit of state.
    191     def magic_deco(arg):
--> 192         call = lambda f, *a, **k: f(*a, **k)
    193 
    194         if isinstance(arg, collections.Callable):

/usr/local/lib/python3.4/dist-packages/sql/magic.py in execute(self, line, cell, local_ns)
     73 
     74         parsed = sql.parse.parse('%s\n%s' % (line, cell), self)
---> 75         conn = sql.connection.Connection.get(parsed['connection'])
     76         first_word = parsed['sql'].split(None, 1)[:1]
     77         if first_word and first_word[0].lower() == 'persist':

/usr/local/lib/python3.4/dist-packages/sql/connection.py in get(cls, descriptor)
     30                 cls.current = conn
     31             else:
---> 32                 cls.current = Connection(descriptor)
     33         if cls.current:
     34             return cls.current

/usr/local/lib/python3.4/dist-packages/sql/connection.py in __init__(self, connect_str)
     10     def __init__(self, connect_str=None):
     11         try:
---> 12             engine = sqlalchemy.create_engine(connect_str)
     13         except: # TODO: bare except; but what's an ArgumentError?
     14             print(self.tell_format())

/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/__init__.py in create_engine(*args, **kwargs)
    384     strategy = kwargs.pop('strategy', default_strategy)
    385     strategy = strategies.strategies[strategy]
--> 386     return strategy.create(*args, **kwargs)
    387 
    388 

/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/strategies.py in create(self, name_or_url, **kwargs)
     49         u = url.make_url(name_or_url)
     50 
---> 51         dialect_cls = u.get_dialect()
     52 
     53         if kwargs.pop('_coerce_config', False):

/usr/local/lib/python3.4/dist-packages/sqlalchemy/engine/url.py in get_dialect(self)
    127         else:
    128             name = self.drivername.replace('+', '.')
--> 129         cls = registry.load(name)
    130         # check for legacy dialects that
    131         # would return a module with 'dialect' as the

/usr/local/lib/python3.4/dist-packages/sqlalchemy/util/langhelpers.py in load(self, name)
    188                     self.group, name):
    189                 self.impls[name] = impl.load
--> 190                 return impl.load()
    191 
    192         raise exc.NoSuchModuleError(

/usr/lib/python3/dist-packages/pkg_resources.py in load(self, require, env, installer)
   2086     def load(self, require=True, env=None, installer=None):
   2087         if require: self.require(env, installer)
-> 2088         entry = __import__(self.module_name, globals(),globals(), ['__name__'])
   2089         for attr in self.attrs:
   2090             try:

/usr/local/lib/python3.4/dist-packages/ibm_db_sa-0.3.2-py3.4.egg/ibm_db_sa/__init__.py in <module>()
     20 __version__ = '0.3.2'
     21 
---> 22 from . import ibm_db, pyodbc, base, zxjdbc
     23 
     24 

/usr/local/lib/python3.4/dist-packages/ibm_db_sa-0.3.2-py3.4.egg/ibm_db_sa/ibm_db.py in <module>()
     18 # +--------------------------------------------------------------------------+
     19 
---> 20 from .base import DB2ExecutionContext, DB2Dialect
     21 from sqlalchemy import processors, types as sa_types, util
     22 from sqlalchemy import __version__ as SA_Version

/usr/local/lib/python3.4/dist-packages/ibm_db_sa-0.3.2-py3.4.egg/ibm_db_sa/base.py in <module>()
     34     VARCHAR, FLOAT
     35 
---> 36 SA_Version = [long(ver_token) for ver_token in SA_Version.split('.')[0:2]]
     37 
     38 # as documented from:

/usr/local/lib/python3.4/dist-packages/ibm_db_sa-0.3.2-py3.4.egg/ibm_db_sa/base.py in <listcomp>(.0)
     34     VARCHAR, FLOAT
     35 
---> 36 SA_Version = [long(ver_token) for ver_token in SA_Version.split('.')[0:2]]
     37 
     38 # as documented from:

NameError: name 'long' is not defined

Format: (postgresql|mysql)://username:password@hostname/dbname, or one of dict_keys([])

0 个答案:

没有答案