无法在 Mac 上使用 pip 安装 pymssql 并链接到使用 fink 安装的 FreeTDS
Posted
技术标签:
【中文标题】无法在 Mac 上使用 pip 安装 pymssql 并链接到使用 fink 安装的 FreeTDS【英文标题】:Failed to install pymssql using pip and linking to FreeTDS installed using fink on a Mac 【发布时间】:2017-11-18 02:00:14 【问题描述】:我在 iMac 上运行 MacOS 10.11.6 (El Capitan)。我已经建立了一个 Python 3.4.7 虚拟环境,并且我已经 pip (9.0.1) 安装了各种包,包括 numpy、pandas、scipy 等。但是,我在使用安装 pymssql 时遇到了困难。我知道我需要先安装 FreeTDS,并且我已经使用 fink(安装了 freetds 版本 0.91-5)完成了安装。但是,当我激活虚拟环境并运行时:
pip install pymssql
我收到以下错误消息(为它的大小道歉):
Collecting pymssql
Using cached pymssql-2.1.3.tar.gz
Complete output from command python setup.py egg_info:
Download error on https://pypi.python.org/simple/setuptools_git/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600) -- Some packages may not be found!
Download error on https://pypi.python.org/simple/setuptools-git/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600) -- Some packages may not be found!
Couldn't find index page for 'setuptools_git' (maybe misspelled?)
Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600) -- Some packages may not be found!
No local packages or working download links found for setuptools_git
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/75/qtnqhywh8xj9760059b8dbd80000gq/T/pip-build-pyxahulz/pymssql/setup.py", line 477, in <module>
ext_modules = ext_modules(),
File "/Users/xyz/Documents/python_projects/general_python34_projects/env34/lib/python3.4/site-packages/setuptools/__init__.py", line 128, in setup
_install_setup_requires(attrs)
File "/Users/xyz/Documents/python_projects/general_python34_projects/env34/lib/python3.4/site-packages/setuptools/__init__.py", line 123, in _install_setup_requires
dist.fetch_build_eggs(dist.setup_requires)
File "/Users/xyz/Documents/python_projects/general_python34_projects/env34/lib/python3.4/site-packages/setuptools/dist.py", line 453, in fetch_build_eggs
replace_conflicting=True,
File "/Users/xyz/Documents/python_projects/general_python34_projects/env34/lib/python3.4/site-packages/pkg_resources/__init__.py", line 866, in resolve
replace_conflicting=replace_conflicting
File "/Users/xyz/Documents/python_projects/general_python34_projects/env34/lib/python3.4/site-packages/pkg_resources/__init__.py", line 1146, in best_match
return self.obtain(req, installer)
File "/Users/xyz/Documents/python_projects/general_python34_projects/env34/lib/python3.4/site-packages/pkg_resources/__init__.py", line 1158, in obtain
return installer(requirement)
File "/Users/xyz/Documents/python_projects/general_python34_projects/env34/lib/python3.4/site-packages/setuptools/dist.py", line 520, in fetch_build_egg
return cmd.easy_install(req)
File "/Users/xyz/Documents/python_projects/general_python34_projects/env34/lib/python3.4/site-packages/setuptools/command/easy_install.py", line 666, in easy_install
raise DistutilsError(msg)
distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('setuptools_git')
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 = ['/sw/include']
setup.py: library_dirs = ['/usr/local/lib', '/sw/lib', '/opt/local/lib']
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/75/qtnqhywh8xj9760059b8dbd80000gq/T/pip-build-pyxahulz/pymssql/
在线说明描述了使用 Homebrew 安装 FreeTDS 但我一直使用 fink 并且不想与两个系统安装的代码造成冲突。
我已经更新了 fink 和 pip,并且我已经安装了最新的 setuptools。
我试过跑步:
pip install --global-option=build_ext --global-option="-L/sw/lib" --global-option="-I/sw/include" pymssql
...但没有运气。
我已经尝试安装早期版本的 pymssql:
pip install pymssql==2.1.1
再一次,没有快乐。
或者错误输出开头的“证书验证失败”注释是密钥?
我确定我以前在其他机器上安装过 MSSQL,但我不记得有问题。我也不记得我做了什么不同(如果有的话)。
谁能帮我解决这个问题,拜托。
【问题讨论】:
【参考方案1】:原来的虚拟环境是使用 Python 3.4.7 创建的,并且是使用 fink 安装的。
我最终删除了这个虚拟环境,并使用从 python.org 下载的 python 3.4.4 重新创建了一个新的虚拟环境。软件包被重新安装(使用 pip freeze)并且 pymssql 安装完全没有问题。
所以,虽然我仍然不知道是什么导致了原来的问题,但至少我现在有了一个工作环境。
【讨论】:
以上是关于无法在 Mac 上使用 pip 安装 pymssql 并链接到使用 fink 安装的 FreeTDS的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Mac 上使用 pip 安装 pymssql 并链接到使用 fink 安装的 FreeTDS
我无法在 Mac 上使用 Python3 安装 Psycopg2。我已经安装了 Python3 和 pip3