Mac電腦 python3.9 連接SQL Server報錯


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM