这是检测 cx_oracle 是否安装了 unicode 或非 unicode 版本的首选方法吗?
我有一个自定义模块,它基本上是与 cx_Oracle 的数据库连接的薄包装。我想在安装了 cx_Oracle 的 unicode 版本和非 unicode 版本的计算机上重复使用此模块。
为此,我需要“检测”安装的版本。我可以“尝试”使用字符串连接描述符建立连接;如果我返回 TypeError,则假设它是安装的 unicode 版本。这看起来有点笨拙。
有更好/首选的方法吗?
谢谢。
I have a custom module that's basically a thin wrapper around a database connection with cx_Oracle. I'd like to re-use this module on computers with both the unicode version of cx_Oracle installed, and with the non-unicode version.
To do this, I need to "detect" the version installed. I could "try" making a connection using a string connection descriptor; and if I get a TypeError back, then assume it's the unicode version installed. This just seems a bit kludgy.
Is there a better/preferred way of doing this?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
try
...except
是进行此类检测的完美方法。使用相同的技术使用 SQLITE 编写可移植应用程序,该应用程序将在库中带有 SQLITE 的较新的 2.7 Python 和较旧的 2.4 上运行,其中 SQLITE 是一个具有更神秘名称的插件模块。Using
try
...except
is a perfectly suitable way to do this kind of detection. The same technique is used to write portable apps using SQLITE that will work on newer 2.7 Python with SQLITE in the library and older 2.4 where SQLITE was an addon module with a more cryptic name.