Yosemite安装后的Python configparser错误

Python configparser error after Yosemite install

我已经升级到了约塞米蒂,这似乎破坏了我的python模块。

python --version==Python 2.7.6

然后从python shell:

1
2
3
4
5
6
>>> import pyrax
Traceback (most recent call last):
  File"<stdin>", line 1, in <module>
  File"/Library/Python/2.7/site-packages/pyrax/__init__.py", line 38, in <module>
    import six.moves.configparser as ConfigParser
ImportError: No module named configparser

所以它抱怨的是configparser

1
2
3
4
5
6
pip show configparser
---
Name: configparser
Version: 3.3.0r2
Location: /Library/Python/2.7/site-packages
Requires:

但它就在那里。在阅读了一些内容之后,很明显,在Python版本3中,configparser已经被重命名为configparser。不过,我的跑步成绩是2.7。

---编辑----

更多信息:我不使用自制的python我试过重新安装Pyrax

有什么想法吗?


把旧的六个移开,通过pip重新安装…

1
2
3
4
5
mkdir ~/six-old-library/
mkdir ~/six-old-system-library/
sudo mv /Library/Python/2.7/site-packages/six* ~/six-old-library/
sudo mv /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six* ~/six-old-system-library/
sudo pip install six

我也有同样的问题,花了几个小时来调查它。我了解到OS X 10.10的默认python包含一个过时的six包。

这就是我修复它的方法:

  • 安装自制的python软件包:

    1
    brew install python

    确保homebrew python是默认的系统版本。检查BREW Doctor和默认的$PATH

    1
    brew doctor

    应该说"你的系统已经准备好酿造了。"如果没有,你需要先修复它。我们需要使用自制的python,而不是OS X的python:

    1
    which python

    应该输出并指向"/usr/local/bin/python"

    如果没有,请检查您的$PATH-它应该先输出"/usr/local/bin",然后输出"/usr/bin"。如果没有,则在.bash_profile和/或.zshrc中更新。

  • 卸载所有python包:

    1
    pip freeze | grep -v"^-e" | xargs pip uninstall -y
  • 根据需要重新安装所有python包:

    1
    pip install -r requirements.txt
  • 毕竟,它应该是有效的。