无法升级 python mac osx 10.10.2 中的六个包
Unable to upgrade python six package in mac osx 10.10.2
我正在尝试安装六个 python 软件包的最新版本,但我遇到了以下问题。 mac OSX 10.10.2
中的6个1.4.1无法去掉
sudo pip install six --upgrade
Requirement already up-to-date: six in /Library/Python/2.7/site-packages
Cleaning up...
pip search six
six - Python 2 and 3 compatibility utilities
INSTALLED: 1.9.0 (latest)
python -c "import six; print six.version"
1.4.1
which -a python
/usr/bin/python
which -a pip
/usr/local/bin/pip
这里有什么问题?无法升级六!
您的 pip
二进制文件属于 /usr/local/bin/python
,而 python
指向 /usr/bin/python
。结果
pip install --upgrade six
将安装到 /usr/local/bin/python
。
下面的命令将确保使用正确版本的 pip:
python -m pip install --upgrade six
Mac OS X 的默认 python 作为框架安装。
framework目录下有一个'Extras'目录,里面已经放了six
包
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.py
根据描述(https://github.com/MacPython/wiki/wiki/Which-Python),/System/Library/Frameworks/Python.framework/Versions/2.7/Extras
在模块搜索路径中列在/Library/Python/2.7/site-packages
之前。
这意味着 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
中已经存在的所有包都无法升级。
也许你应该手动安装 python 而不是使用默认的 python。
对我来说,只需使用 homebrew 就可以解决所有问题。
brew install python
我在使用 pip 安装 openstack 客户端时遇到了这个问题。我的修复是使用 easy_install 而不是 pip,因为它使用 /Library/Python/2.7/site-packages/
而不是 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
进行模块安装。如果此解决方法不适合您,那么我可以确认@Masakazu Matsushita 具有将 PYTHONPATH
设置为 /Library/Python/2.7/site-packages
的正确解决方法。要实施该解决方法,请添加此行:
export PYTHON_PATH=/Library/Python/2.7/site-packages
到您的 ~/.bashrc
和 ~/.profile
(如果它是您尝试安装的 GUI Python 应用程序)。
虽然上述一种或另一种解决方案可能适合您,但我认为了解正在发生的事情以及您有哪些选择很重要。我发现 this(相当冗长)描述非常有用:它从概述选项开始,然后才提出解决方案。
试试这些步骤
使用 brew
重新安装 python
$ brew install python
解决缺少符号链接问题
$ brew link --overwrite python
重启系统或运行
$ hash -r python
我通过以下方法解决了问题。
- 下载 six-1.10.0.tar.gz 包
- 使用此命令安装它。
python setup.py install
这是有效的,因为它将新版本的 6 安装到 /Library/Python/2.7/site-packages/,它在 [=28 之前搜索=].framework/Versions/2.7/Extras/lib/python/
对我有用的是使用 easy_install
而不是 pip
。
easy_install -U six
Easy_install 即使 pip 失败也设法升级包。
最后,我的问题是我使用的是 IPython shell。
which ipython
返回 /usr/local/bin/ipython
并在检查时在顶部声明了此文件 #!/usr/bin/python
,这似乎是在规避我使用正确 python 位置的所有最大努力.
只需更改此行 #!/usr/local/bin/python
以指向正确的 python 版本就意味着 IPython 使用了正确的 six
模块。
尝试使用 pip2 它对我有用
pip2 安装-U 六
我正在尝试安装六个 python 软件包的最新版本,但我遇到了以下问题。 mac OSX 10.10.2
中的6个1.4.1无法去掉sudo pip install six --upgrade
Requirement already up-to-date: six in /Library/Python/2.7/site-packages
Cleaning up...
pip search six
six - Python 2 and 3 compatibility utilities
INSTALLED: 1.9.0 (latest)
python -c "import six; print six.version"
1.4.1
which -a python
/usr/bin/python
which -a pip
/usr/local/bin/pip
这里有什么问题?无法升级六!
您的 pip
二进制文件属于 /usr/local/bin/python
,而 python
指向 /usr/bin/python
。结果
pip install --upgrade six
将安装到 /usr/local/bin/python
。
下面的命令将确保使用正确版本的 pip:
python -m pip install --upgrade six
Mac OS X 的默认 python 作为框架安装。
framework目录下有一个'Extras'目录,里面已经放了six
包
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.py
根据描述(https://github.com/MacPython/wiki/wiki/Which-Python),/System/Library/Frameworks/Python.framework/Versions/2.7/Extras
在模块搜索路径中列在/Library/Python/2.7/site-packages
之前。
这意味着 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
中已经存在的所有包都无法升级。
也许你应该手动安装 python 而不是使用默认的 python。
对我来说,只需使用 homebrew 就可以解决所有问题。
brew install python
我在使用 pip 安装 openstack 客户端时遇到了这个问题。我的修复是使用 easy_install 而不是 pip,因为它使用 /Library/Python/2.7/site-packages/
而不是 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
进行模块安装。如果此解决方法不适合您,那么我可以确认@Masakazu Matsushita 具有将 PYTHONPATH
设置为 /Library/Python/2.7/site-packages
的正确解决方法。要实施该解决方法,请添加此行:
export PYTHON_PATH=/Library/Python/2.7/site-packages
到您的 ~/.bashrc
和 ~/.profile
(如果它是您尝试安装的 GUI Python 应用程序)。
虽然上述一种或另一种解决方案可能适合您,但我认为了解正在发生的事情以及您有哪些选择很重要。我发现 this(相当冗长)描述非常有用:它从概述选项开始,然后才提出解决方案。
试试这些步骤
使用 brew
重新安装 python$ brew install python
解决缺少符号链接问题
$ brew link --overwrite python
重启系统或运行
$ hash -r python
我通过以下方法解决了问题。
- 下载 six-1.10.0.tar.gz 包
- 使用此命令安装它。
python setup.py install
这是有效的,因为它将新版本的 6 安装到 /Library/Python/2.7/site-packages/,它在 [=28 之前搜索=].framework/Versions/2.7/Extras/lib/python/
对我有用的是使用 easy_install
而不是 pip
。
easy_install -U six
Easy_install 即使 pip 失败也设法升级包。
最后,我的问题是我使用的是 IPython shell。
which ipython
返回 /usr/local/bin/ipython
并在检查时在顶部声明了此文件 #!/usr/bin/python
,这似乎是在规避我使用正确 python 位置的所有最大努力.
只需更改此行 #!/usr/local/bin/python
以指向正确的 python 版本就意味着 IPython 使用了正确的 six
模块。
尝试使用 pip2 它对我有用 pip2 安装-U 六