林先森_007

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

 

posted on 2021-12-17 21:31  林先森_007  阅读(1369)  评论(0编辑  收藏  举报