在Python 2.7中使用MSSQL

41

是否有可用于连接 MSSQL 和 Python 2.7 的模块?

我下载了 pymssql,但它是为 Python 2.6 版本设计的。是否有适用于 Python 2.7 的类似模块?

如果有人能提供链接,我会感激不尽。


重要提示:同时现在已经有 pymssql 模块可用。请务必阅读页面末尾的答案:https://dev59.com/2Ww05IYBdhLWcg3wTwKY#25749269


2.7不是向后兼容2.6吗?也就是说,那个模块在2.6中能用吗? - rplnt
2
这里有2.7版本的快照 http://build.damoxc.net/downloads/pymssql/snapshots/ ...希望能对您有所帮助。 - rplnt
我找到了一个Python库的存储库,希望对所有人有用。http://www.lfd.uci.edu/~gohlke/pythonlibs/ - Shashi
4个回答

58
您也可以使用 pyodbc 来从 Python 连接到 MSSQL。
文档中的示例: example from the documentation
import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=me;PWD=pass')
cursor = cnxn.cursor()
cursor.execute("select user_id, user_name from users")
rows = cursor.fetchall()
for row in rows:
    print row.user_id, row.user_name

SQLAlchemy库(在另一个答案中提到),使用pyodbc连接MSSQL数据库(它尝试使用各种库,但pyodbc是首选)。下面是使用SQLAlchemy的示例代码:

from sqlalchemy import create_engine
engine = create_engine("mssql://me:pass@localhost/testdb")
for row in engine.execute("select user_id, user_name from users"):
    print row.user_id, row.user_name

17
如果你通过网页搜索遇到这个问题,请注意,现在的已经支持Python 2.7(和3.3)或更新版本,无需使用ODBC。
从的要求中可以看出:
Python 2.x:2.6或更高版本。Python 3.x:3.3或更高版本。
请参见http://pymssql.org/

有几个Python SQL驱动程序可供选择。然而,微软将其测试工作和信心放在pyodbc驱动程序上。但我怀疑这在2014年并非如此 :) - riffrazor

5

使用pip安装pyodbc如下所示:pip install pyodbc

import pyodbc
cnxn = pyodbc.connect("DRIVER={SQL Server};SERVER=SOME-PC;DATABASE=my_db")
cursor = cnxn.cursor()


cursor.execute("insert into test_tb values(6, 'name')")

cursor.execute("select id, name from my_tb")
rows = cursor.fetchall()
for row in rows:
    print row.id, row.name

详细信息请参见

https://github.com/mkleehammer/pyodbc/wiki


(注:此文本已被翻译成中文,保留了原文的HTML标签)

这个 pip 安装似乎不再工作(Ubuntu 16.04,Python 2.7): --compile failed with error code 1 in ... - Michael M
2
@MichaelMügge - 如果你先运行 sudo apt install unixodbc-dev,那么在Ubuntu 16.04上执行 pip install pyodbc 是没问题的。 - Gord Thompson
@GordThompson,确实如此。那是一个重要的细节。谢谢。 - Michael M

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接