linux系统pyodbc安装与使用教程

本文章第一部分参考自https://blog.csdn.net/dongweizu33/article/details/54616258。

1 LINUX 安装ODBC驱动

对于具有root权限的用户,可直接参考文章https://blog.csdn.net/dongweizu33/article/details/54616258。

1.1 下载最新的unixODBC源码包

网址:http://www.unixodbc.org,文件形如unixODBC-2.3.9.tar.gz,放到用户目录下,如/home/xxx。

解压:

tar -zxvf unixODBC-2.3.9.tar.gz

1.2 安装unixODBC-2.3.9

cd /home/xxx/local/unixODBC-2.3.9/
./configure --prefix=/home/xxx/unixODBC-2.3.9 --includedir=/home/xxx/include --libdir=/home/xxx/lib -bindir=/home/xxx/bin --sysconfdir=/home/xx/etc
make
make install

注意,由于普通用户不具有编辑/usr/include,/usr/bin,/etc等文件夹的权限,因此原教程中相应目录均需要做相应更改。

1.3 测试安装是否成功

odbcinst -j
unixODBC 2.3.9
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/jjyu/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

1.4 export全局变量

如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下, 但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径),那可以export一个全局变量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找共享库.

在.bashrc中添加下述语句:

export LD_LIBRARY_PATH=/home/xxx/lib:$LD_LIBRARY_PATH

并执行

source ~./bashrc

即可。

2 pyodbc 使用

2.1 pip install pyodbc

2.2 编辑 /home/xxx/etc/odbc.ini

[VOS]
Driver=/home/xxx/virtodbc.so
Address=server:port
UserName=dba

其中server,port以及virtodbc.so由安装virtuoso的人员提供。

2.3 将virtodbc.so放入/home/xxx文件夹下。

2.4 pyodbc使用模板:

import pyodbc
endpoint = pyodbc.connect('DSN=VOS;UID=dba;PWD=dba')
endpoint.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
endpoint.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
endpoint.setencoding(encoding='utf-8')
cursor = endpoint.cursor()
query = """SPARQL PREFIX ns: <http://rdf.freebase.com/ns/>
            select distinct ?s ?name
            where { ?s ns:type.object.name ?name.
            FILTER(LANGMATCHES(LANG(?name), "en"))
            }"""
with endpoint:
    cursor.execute(query)
rows = cursor.fetchall()
cursor.close()

因ODBC既可以查询SPARQL语句,又可以查询SQL语句,故在查询语句前加SPARQL用于区分。其中connect语句中的DSN=VOS与odbc.ini中的[VOS]保持一致。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值