zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Linux下的内核测试工具——perf使用简介
    浅谈C++中指针和引用的区别
    成为Java顶尖程序员 ,看这11本书就够了
    spring注解详解
    Spring AOP详解和实现方式
    Spring IoC中各个注解的理解和使用
    NameNode配置HA后及其反过程Hive路径不正确的问题解决
    [maven] 常用插件解析
    Saiku3.15去除License与主界面
    saiku系列文章
  • 原文地址:https://www.cnblogs.com/LQLin168/p/15703887.html
Copyright © 2011-2022 走看看