无法在运行10.6的Mac上安装pip

时间:2017-05-16 15:35:27

标签: python pip

1我使用brew安装了python。

2 Python get-pip.py会产生以下结果:

Requirement already up-to-date: pip in /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

3当我尝试使用pip安装其他东西时,我得到了这个:

pip install nose
-bash: /System/Library/Frameworks/Python.framework/Versions/2.7/bin/pip: /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Content: bad interpreter: No such file or directory.

2 个答案:

答案 0 :(得分:0)

因为您正在使用系统附带的python(在/System/Library/...下),通常python将是/Library/...,pip命令正在错误的地方寻找python解释器。

如果你使用的是操作系统附带的python,它可能已经过时了,所以我建议你从python.org安装它,它会安装到pip所期望的地方,所以它就是这样。解决你当前的问题。

如果您对已安装的python版本感到满意并且python命令正常工作并且pip作为模块安装,那么您可以使用python -m pip来运行pip命令。无需更改!

如果您确实希望将pip快捷方式用于非标准安装。

(我个人不推荐这个,因为其他选项更好,但在某些时候可能对某人有用)

你得到的错误特别是因为pip文件中的shebang不正确,所以你可以根据需要修复它。

首先找到pip命令和python命令which pipwhich python,python 1是机器码,但是你可以在{1}中读取pip文本编辑器,这就是我的样子:

#!/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

第一个像#!一样是shebang,它表示可以运行此文件的python可执行文件的路径(来自which python的路径)所以只需将其更改为python的路径可执行和保存,你应该很高兴去!

答案 1 :(得分:0)

简短建议:使用Pyenv

Python上的Python本机安装有点调整,操作系统的几个组件也使用它,所以如果可能的话,最好不要修补它。

使用Pyenv,您可以设置多个虚拟Python环境,这些环境可以具有特定的Python版本,并且可以针对特定文件夹自动启用。

例如,假设您要为项目使用Python 3.6。首先,您必须安装Pyenv及其虚拟环境模块:

brew install pyenv pyenv-virtualenv pyenv install 3.6.0

然后,您可以基于Python 3.6创建自己的环境: pyenv virtualenv 3.6.0 my-own-py36

完成后,您应该在自己的环境中,pip将适用于该特定版本。

无论如何,也许最舒服的选择是为特定文件夹自动启用它。你可以这样做到你的项目根目录并输入: pyenv local my-own-py36

我希望您觉得这很有帮助,如果您有任何疑问,可以查看Pyenv文档。