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.
答案 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 pip
和which 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文档。