尝试使用 pip 在 ubuntu 12.04 上安装 pymssql

Posted

技术标签:

【中文标题】尝试使用 pip 在 ubuntu 12.04 上安装 pymssql【英文标题】:trying to install pymssql on ubuntu 12.04 using pip 【发布时间】:2013-06-26 11:28:44 【问题描述】:

我正在。这是我得到的错误。任何帮助将不胜感激,因为我完全迷失了!

尝试谷歌搜索但不幸的是无济于事......

  Downloading pymssql-2.0.0b1-dev-20130403.tar.gz (2.8Mb): 2.8Mb downloaded
  Running setup.py egg_info for package pymssql
    warning: no files found matching '*.pyx' under directory 'Cython/Debugger/Tests'
    warning: no files found matching '*.pxd' under directory 'Cython/Debugger/Tests'
    warning: no files found matching '*.h' under directory 'Cython/Debugger/Tests'
    warning: no files found matching '*.pxd' under directory 'Cython/Utility'
    Compiling module Cython.Plex.Scanners ...
    Compiling module Cython.Plex.Actions ...
    Compiling module Cython.Compiler.Lexicon ...
    Compiling module Cython.Compiler.Scanning ...
    Compiling module Cython.Compiler.Parsing ...
    Compiling module Cython.Compiler.Visitor ...
    Compiling module Cython.Compiler.FlowControl ...
    Compiling module Cython.Compiler.Code ...
    Compiling module Cython.Runtime.refnanny ...

    Installed /home/radek/build/pymssql/Cython-0.19.1-py2.7-linux-x86_64.egg
    cc -c /tmp/clock_gettimeh7sDgX.c -o tmp/clock_gettimeh7sDgX.o
    cc tmp/clock_gettimeh7sDgX.o -lrt -o a.out

    warning: no files found matching 'win32/freetds.zip'
Installing collected packages: pymssql
  Running setup.py install for pymssql
    skipping '_mssql.c' Cython extension (up-to-date)
    building '_mssql' extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/home/radek/build/pymssql/freetds/nix_64/include -I/usr/include/python2.7 -c _mssql.c -o build/temp.linux-x86_64-2.7/_mssql.o -Wno-parentheses-equality -DMSDBLIB
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/_mssql.o -L/home/radek/build/pymssql/freetds/nix_64/lib -lsybdb -lct -lrt -o build/lib.linux-x86_64-2.7/_mssql.so
    /usr/bin/ld: cannot find -lct
    collect2: ld returned 1 exit status
    error: command 'gcc' failed with exit status 1
    Complete output from command /usr/bin/python -c "import setuptools;__file__='/home/radek/build/pymssql/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-Et_P1_-record/install-record.txt:
    running install

running build

running build_ext

skipping '_mssql.c' Cython extension (up-to-date)

building '_mssql' extension

creating build

creating build/temp.linux-x86_64-2.7

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/home/radek/build/pymssql/freetds/nix_64/include -I/usr/include/python2.7 -c _mssql.c -o build/temp.linux-x86_64-2.7/_mssql.o -Wno-parentheses-equality -DMSDBLIB

creating build/lib.linux-x86_64-2.7

gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/_mssql.o -L/home/radek/build/pymssql/freetds/nix_64/lib -lsybdb -lct -lrt -o build/lib.linux-x86_64-2.7/_mssql.so

/usr/bin/ld: cannot find -lct

collect2: ld returned 1 exit status

error: command 'gcc' failed with exit status 1

----------------------------------------
Command /usr/bin/python -c "import setuptools;__file__='/home/radek/build/pymssql/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-Et_P1_-record/install-record.txt failed with error code 1

【问题讨论】:

所以这是可搜索的:Ubuntu 14.04 将抛出“mssql.c:346:22: fatal error: sqlfront.h: No such file or directory”。根据下面的答案,安装 freetds-dev 解决了这个问题。 【参考方案1】:

确保您已安装 python-dev 包(需要使用本机绑定编译包(感谢 @ravihemnani)。

那么您需要先安装 FreeTDS 开发包 (freetds-dev),然后再尝试使用 pip 安装 pymssql

$ sudo apt-get install freetds-dev

然后,在你的 virtualenv 或任何你想安装它的地方:

$ pip install pymssql

【讨论】:

如果 pip 不起作用:sudo apt-get install python-pip 将安装 pip sudo apt-get install -y freetds-dev 解决了我的问题。谢谢。 debian 和 apt-get install freetds-dev 中的相同问题也解决了我的问题! 我也需要export C_INCLUDE_PATH=/usr/include 这也适用于我的 Raspberry Pi,但是我必须使用 sudo pip3 install pymssql 以 root 身份安装 pymssql,因为我收到了 PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3 .5/dist-packages/_mssql.cpython-35m-arm-linux-gnueabihf.so'【参考方案2】:

除了freetds-dev,你还需要安装python-dev以及follow.

sudo apt-get install python-dev

否则,您将再次面临一些错误。

【讨论】:

这条评论对于使被接受的评论成功至关重要! (至少在 14.04LTS 中)谢谢,Ravihemnani【参考方案3】:

对于那些使用 OpenSuse(和相关操作系统)的人:

zypper in freetds-devel
pip install pymssql

【讨论】:

【参考方案4】:

在 Mac 上

brew install freetds@0.91
brew link --force freetds@0.91
pip install pymssql

【讨论】:

以上是关于尝试使用 pip 在 ubuntu 12.04 上安装 pymssql的主要内容,如果未能解决你的问题,请参考以下文章

E:无法纠正问题,您在尝试在 Ubuntu 12.04 上安装 yaws 1.98 时持有损坏的软件包 [关闭]

lmerTest 软件包安装在 Ubuntu 12.04 上失败

如何在 Ubuntu 上通过 pip 安装 python3 版本的软件包?

如何在 Ubuntu 上通过 pip 安装 python3 版本的软件包?

无法在 ubuntu 12.04 上安装 rvm

无法在 Ubuntu 12.04 上安装 mysql 服务器