1、相关环境:
(1)python Version :3.9
(2)pymssql Version:2.2.2
(3)VScode编辑器
(4)Macbook Pro M1芯片
2、安装pymssql库
pip3 install pymssql
用jupyter note查询pymssql版本
3、用VScode编辑器
import pymssql connect = pymssql.connect('local','sa','admin','Test') if connect: print('连接成功') connect.close()
运行后,出错!详见下述:
File "/Users/linql/Desktop/Python_PDFDemo/py_SQLServer.py", line 1, in <module> import pymssql File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pymssql/__init__.py", line 3, in <module> from ._pymssql import * File "src/pymssql/_pymssql.pyx", line 1, in init pymssql._pymssql ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pymssql/_mssql.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace '_iconv'
经查询,为版本兼容问题,需要将pymssql 版本改为2.1.5.
pip3 install "pymssql == 2.1.5"
直接运行,仍出错
pip3 install "pymssql==2.1.5" Collecting pymssql==2.1.5 Downloading pymssql-2.1.5.tar.gz (167 kB) |████████████████████████████████| 167 kB 61 kB/s Installing build dependencies ... done Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... done Building wheels for collected packages: pymssql Building wheel for pymssql (pyproject.toml) ... error ERROR: Command errored out with exit status 1: command: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /var/folders/gk/sz58558x7_qd74vxpr06r6xm0000gn/T/tmpkg0ygg3g cwd: /private/var/folders/gk/sz58558x7_qd74vxpr06r6xm0000gn/T/pip-install-4drv0zcb/pymssql_2746b6c18e5e4c87a75e56b177f7290f Complete output (33 lines): setup.py: platform.system() => 'Darwin' setup.py: platform.architecture() => ('64bit', '') setup.py: platform.libc_ver() => ('', '') setup.py: Detected Darwin/Mac OS X. You can install FreeTDS with Homebrew or MacPorts, or by downloading and compiling it yourself. Homebrew (http://brew.sh/) -------------------------- brew install freetds MacPorts (http://www.macports.org/) ----------------------------------- sudo port install freetds setup.py: Not using bundled FreeTDS setup.py: include_dirs = [] setup.py: library_dirs = ['/usr/local/lib'] running bdist_wheel running build running build_ext cythoning src/_mssql.pyx to src/_mssql.c cythoning src/pymssql.pyx to src/pymssql.c building '_mssql' extension creating build creating build/temp.macosx-10.9-x86_64-3.9 creating build/temp.macosx-10.9-x86_64-3.9/src gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch x86_64 -g -I/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c src/_mssql.c -o build/temp.macosx-10.9-x86_64-3.9/src/_mssql.o -DMSDBLIB src/_mssql.c:682:10: fatal error: 'sqlfront.h' file not found #include "sqlfront.h" ^~~~~~~~~~~~ 1 error generated. error: command '/usr/bin/gcc' failed with exit code 1 ---------------------------------------- ERROR: Failed building wheel for pymssql Failed to build pymssql ERROR: Could not build wheels for pymssql, which is required to install pyproject.toml-based projects
再查相关资料(此处忘记插连接具体出处,抱歉,若侵者望联删!)
1、brew unlink freetds --若无,提示未有 2、brew install freetds@0.91 3、brew link --force freetds@0.91 4、pip3 install "pymssql == 2.1.5"
下图为Inter芯片的MacBook Pro安装可以成功。
在M1 Macbook Pro 安装freetds
brew install freedts@0.91
出错。
linql@linqldeMBP-2 / % brew install freetds@0.91 Warning: No available formula with the name "freetds@0.91". Did you mean freetds? ==> Searching for similarly named formulae... This similarly named formula was found: freetds To install it, run: brew install freetds ==> Searching for a previously deleted formula (in the last month)... Error: No previously deleted formula found. ==> Searching taps on GitHub... Error: No formulae found in taps
解决freetds安装问题
下载fresstds,下载链接:http://mirrors.ibiblio.org/freetds/stable/
下载完成后,解压。
在解压目录下,运行下面代码:
./configure --prefix=/usr/local/freetds0.91 --enable-msdblib --with-tdsver=7.1
重新安装freetds
brew install freetds
最后通过Anaconda 实现安装,具体为何实现,未知。。。
运行后,提示安装成功。
Successfully installed pymssql-2.1.5