【问题标题】:How do I install pip for Python 2.6 on OS X?如何在 OS X 上为 Python 2.6 安装 pip?
【发布时间】:2015-08-12 23:36:55
【问题描述】:

我有一个 OS X 系统,我需要为 python 2.6 安装一个模块。 pipeasy_install-2.6 都失败了:

# /usr/bin/easy_install-2.6 pip
Searching for pip
Reading http://pypi.python.org/simple/pip/
Download error: unknown url type: https -- Some packages may not be found!
Couldn't find index page for 'pip' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading http://pypi.python.org/simple/
Download error: unknown url type: https -- Some packages may not be found!
No local packages or download links found for pip
error: Could not find suitable distribution for Requirement.parse('pip')

下载get_pip.py 并使用OS X 提供的python 2.6 运行它:

# python2.6 ./get_pip.py 
Traceback (most recent call last):
  File "./get_pip.py", line 17868, in <module>
    main()
  File "./get_pip.py", line 162, in main
    bootstrap(tmpdir=tmpdir)
  File "./get_pip.py", line 82, in bootstrap
    import pip
  File "/tmp/tmpVJBvaW/pip.zip/pip/__init__.py", line 15, in <module>
  File "/tmp/tmpVJBvaW/pip.zip/pip/vcs/subversion.py", line 9, in <module>
  File "/tmp/tmpVJBvaW/pip.zip/pip/index.py", line 30, in <module>
  File "/tmp/tmpVJBvaW/pip.zip/pip/wheel.py", line 34, in <module>
  File "/tmp/tmpVJBvaW/pip.zip/pip/_vendor/__init__.py", line 92, in load_module
ImportError: No module named 'pip._vendor.distlib.scripts'


$ python2.6 --version
Python 2.6.9

使用 python2.7,两种方法都可以正常工作。

【问题讨论】:

  • 通过brew安装Python时自动提供,例如:brew install python。或者使用:sudo easy_install pip.
  • 试试 Homebrew 扩展,BrewPip
  • 尝试从源安装 pip 怎么样? pypi.python.org/pypi/pip#downloads
  • 为什么需要运行python 2.6?我会完全删除 python 并从 home-brew(包括 pip)安装 python。
  • @kenorb,我在尝试使用 brew 安装 py2.6 时遇到了麻烦

标签: python macos python-2.6


【解决方案1】:

下载源文件here。然后做

>> cd ~/Downloads
>> tar -xzvf pip-7.0.1.tar.gz 

(必要时替换~/Downloads)。那么

>> cd pip-7.0.1
>> sudo python2.6 setup.py install
>> cd

(最后一个cd 用于离开构建目录)。现在你应该可以运行了

>> python2.6 -c 'import pip;print pip.__version__'
7.0.1

默认情况下,pip(从源安装时)应安装到/usr/local/bin。检查:

>> /usr/local/bin/pip --version
pip 7.0.1 from /Library/Python/2.6/site-packages/pip-7.0.1-py2.6.egg (python 2.6)

现在您可以使用

安装您喜欢的软件包
>> /usr/local/bin/pip install package
>> python2.6 -c 'import package'

如果您在/usr/local/bin 中有冲突的pip 版本,您可以试试这个荒谬的单行:

>> python -c 'import os;dir="/usr/local/bin";[ os.system("echo %s/%s: && %s/%s --version"%(dir,s,dir,s)) for s in os.listdir("/usr/local/bin") if s.startswith("pip")  ]'
/usr/local/bin/pip:
pip 7.0.1 from /Library/Python/2.6/site-packages/pip-7.0.1-py2.6.egg (python 2.6)
/usr/local/bin/pip2:
pip 7.0.1 from /Library/Python/2.6/site-packages/pip-7.0.1-py2.6.egg (python 2.6)
/usr/local/bin/pip2.6:
pip 7.0.1 from /Library/Python/2.6/site-packages/pip-7.0.1-py2.6.egg (python 2.6)

找到链接到py2.6的那个。 (就我而言,它们都是一样的)

【讨论】:

  • 遵循这个过程似乎会抛出与问题中提到的相同的 ImportError。
【解决方案2】:

默认情况下,Homebrew 通过brew install python 提供pip 命令。

所以尝试使用 Homebrew 安装 Python。使用brew 时尽量不要使用sudo

要验证您的 Python 包安装了哪些文件,请尝试:

$ brew list python
/usr/local/Cellar/python/2.7.9/bin/pip
/usr/local/Cellar/python/2.7.9/bin/pip2
/usr/local/Cellar/python/2.7.9/bin/pip2.7
...

应该包含pip

安装后,您应该通过以下方式对公式的已安装文件进行符号链接:

brew link python

应该创建正确的符号链接(例如指向您的Cellar/python/2.?.?/bin/pip/usr/local/bin/pip

如果您有权限问题,您可以通过以下方式解决:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew

并确保您的用户属于管理员组 (id -Gn $USER)。

然后重新链接:

brew unlink python && brew link python

要测试试运行,取消链接并运行:brew link -n python 以查看 brew 将链接的文件的链接。

链接成功后,确保你的PATH系统变量有/usr/local,如果没有,添加:

export PATH=/usr/local/sbin:/usr/local/bin:$PATH

到您的~/.bashrc 文件。

如果成功,您的pip 现在应该可以工作了。


如果您不想使用 Homebrew 或者您的 Mac 上安装了两个 Python,您也可以通过以下方式安装它:

sudo easy_install pip

你的错误:

下载错误:未知网址类型:https

意味着如果没有 SSL 支持,您的 Python 将无法处理 HTTPS 协议,因此请尝试安装:openssl 包(在 Linux 上为 libssl-devopenssl-devel)。

【讨论】:

    猜你喜欢
    • 2013-12-03
    • 2014-08-09
    • 1970-01-01
    • 2011-09-24
    • 2014-05-30
    • 2016-05-22
    • 1970-01-01
    • 2013-06-20
    相关资源
    最近更新 更多