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