无法在mac osx 10.10.2中升级python six软件包

时间:2015-04-07 07:04:43

标签: python macos pip six

我正在尝试安装最新版本的六个python包,但我有以下问题。在mac OSX 10.10.2

中无法摆脱六个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

这里有什么问题?无法升级六个!

10 个答案:

答案 0 :(得分:23)

我通过以下方法解决了这个问题。

  1. 下载six-1.10.0.tar.gz软件包
  2. 使用此命令进行安装。
  3. python setup.py install

    这是有效的,因为它将新版本的6安装到 /Library/Python/2.7/site-packages / ,在 /System/Library/Frameworks/Python.framework/之前搜索版本/ 2.7 /附加/ LIB /蟒/

答案 1 :(得分:16)

您的pip二进制文件属于/usr/local/bin/python,而python二进制文件属于/usr/bin/python。结果

pip install --upgrade six

将安装到/usr/local/bin/python

以下命令将确保使用正确版本的pip:

python -m pip install --upgrade six

答案 2 :(得分:16)

对我来说,只需使用homebrew修复所有内容。

brew install python

答案 3 :(得分:15)

对我有用的是使用easy_install代替pip

easy_install -U six

即使pip失败,Easy_install也设法升级了包。

答案 4 :(得分:11)

Mac OS X&#39的默认python作为框架安装。 在框架目录下,有一个' 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。

答案 5 :(得分:4)

使用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应用程序)。

答案 6 :(得分:3)

尝试以下步骤

  1. 使用brew重新安装python

    <template> <h1>{{ msg }}</h1> <input v-model="msg"> <button v-on:click="get">Call Server</button> </template> <script> export default { data: function() { return { msg: 'Hello World!' } }, methods: { get: function() { // GET request this.$http({ url: 'localhost:8090', method: 'GET' }).then(function(response) { console.log('ok'); }, function(response) { console.log('failed'); }); } } } </script>

  2. 解决缺少的符号链接问题

    $ brew install python

  3. 重启系统或运行

    $ brew link --overwrite python

答案 7 :(得分:3)

尝试使用pip2为我工作     pip2安装-U六

答案 8 :(得分:1)

虽然上述解决方案中的一个或另一个可能对您有用,但我认为理解发生了什么以及您有哪些选择非常重要。我发现this(相当冗长)的描述非常有用:它首先概述了选项,然后才建议解决方案。

答案 9 :(得分:1)

最后,问题在于我使用的是IPython shell。

which ipython返回/usr/local/bin/ipython,经过检查,此文件在顶部#!/usr/bin/python处声明,这似乎正在绕过我尽最大努力使用正确的python位置。

只需将此行#!/usr/local/bin/python更改为指向正确的python版本,即表示IPython使用了正确的six模块。