树莓派OS配置MSSQL连接器时pymssql模块找不到问题求助
问题
在树莓派OS环境下配置MSSQL连接器时,明明已经安装了pymssql模块,却遇到模块找不到的错误。相关环境信息如下:
# python3 --version Python 3.9.2 # pip show pymssql Name: pymssql Version: 2.2.5 Summary: DB-API interface to Microsoft SQL Server for Python. (new Cython-based version) Home-page: Author: Damien Churchill Location: /usr/local/lib/python3.9/dist-packages # python3 readp.py ModuleNotFoundError: No module named 'pymssql._pymmsql'
对应的readp.py代码:
import pymssql cnn = pymssql.connect(Server:SERVER;user=USER;password=PWD;database=DB) empId = 123 print(empId) cursor = cnn.cursor() query = "SELECT * FROM employees WHERE empId = 123" cursor.execute(query, rd) firstrow.cursor.fetchone()
可能的原因及解决办法
- ARM架构编译不兼容:树莓派是ARM架构,pymssql 2.2.5的预编译包可能不匹配ARM平台,导致安装后缺失底层的
_pymssql模块(错误信息里的_pymmsql是拼写错误,实际应为_pymssql)。解决步骤:- 卸载现有pymssql:
pip uninstall -y pymssql - 安装编译依赖:
sudo apt-get install freetds-dev gcc python3-dev - 重新编译安装:
pip install pymssql --no-binary :all:
- 卸载现有pymssql:
- Python环境不匹配:确认运行脚本的
python3和安装pymssql的pip属于同一环境。用which python3和which pip3查看路径,若pip对应Python2,改用pip3 install pymssql重新安装。 - 代码语法错误(附加修正):你的
readp.py存在几处语法问题,虽不是当前模块错误的原因,但后续运行也会报错:pymssql.connect的参数格式错误,正确写法应为关键字参数:cnn = pymssql.connect(server='SERVER', user='USER', password='PWD', database='DB')cursor.execute(query, rd)中的rd未定义,需删除该参数或定义对应变量firstrow.cursor.fetchone()应为firstrow = cursor.fetchone()
内容的提问来源于stack exchange,提问作者Maria
相关产品推荐
相关产品推荐

