在安装matplotlib时出现ImportError: No module named pkg_resources错误

7

这是在CentOs 6.6上。我正在尝试建立一个科学python环境,想要避免使用Anaconda。安装matplotlib时,出现“ImportError: No module named pkg_resources”的错误提示。完整的安装历史记录如下:

sudo yum install gcc-c++.x86_64
sudo yum install gcc
sudo yum install atlas atlas-devel lapack-devel blas-devel
sudo yum install python-devel
sudo pip install numpy
sudo pip install scipy
sudo pip install pandas
sudo pip install matplotlib

在最后一步,我收到了消息。
Complete output from command python setup.py egg_info:
The required version of distribute (>=0.6.28) is not available,
and can't be installed while this script is running. Please
install a more recent version first, using
'easy_install -U distribute'.

然后我执行。
sudo pip install --upgrade distribute

安装了 distribute-0.7.3setuptools-18.0.1 后,执行以下操作:
sudo pip install matplotlib

这会导致:
File "/usr/bin/pip", line 5, in <module>
  from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

有什么想法吗?

更新

在执行上述步骤后,此安装中的 setuptools pip 已损坏。从 Python shell 中,执行 help() ,然后执行 modules 不会列出 setuptools 。在文件系统中搜索 setuptools 目录:

/usr/lib/python2.6/site-packages/setuptools-18.0.1.dist-info/

同时,在 /usr/lib/python2.6/site-packages/ 目录下的 setuptools.pth 文件中,存在指向不存在的 ./setuptools-0.6c11-py2.6.egg-info 的指针。

与此同时,存在一个目录

/usr/share/doc/python-setuptools-0.6.10/

在所有这些之后,pip不再起作用。


“distribute”已经死亡。移除“distribute”,安装/升级“setuptools”和“pip”能解决这个问题吗? - cel
你尝试过访问 https://dev59.com/O2s05IYBdhLWcg3wGuOd 吗? - juanmajmjr
@cel 尝试卸载 distribute 导致了相同的错误。正在调查中... - nikosd
@nikosd,我通常推荐使用Anaconda,因为它使事情变得非常简单。如果您不想使用Anaconda,至少应该使用virtualenv。这个问题可能是由于您的软件包管理器和pip之间的冲突引起的 - 在大多数情况下,对于pip使用sudo是一个不好的迹象 :) - cel
@cel,同意,由于Flask,最终所有东西都将在virtualenv中。我会尝试一下。 - nikosd
1
@juanmajmjr,从https://dev59.com/O2s05IYBdhLWcg3wGuOd接受的答案也没有起作用。尝试按照此处https://pypi.python.org/pypi/setuptools/0.9.8#installation-instructions的说明删除“distribute”。 - nikosd
3个回答

4

@pavan 他们提到了CentOS,所以apt很可能无法帮助他们。

不过,他们可以使用以下命令:

yum remove python-setuptools

yum install python-setuptools  

(我也需要重新安装pip: yum install python-pip)

这可能会解决问题。


这个项目已经被成功停用,因此我不再可以访问那台 CentOS 机器。下次需要这样的方法时,我会尝试它;与此同时,其他人可能可以检查重新安装 python-setuptools 是否能够解决问题。 - nikosd

1

如果您的操作系统支持apt-get(如Ubuntu等),请尝试以下方法:

sudo apt-get install python-pkg-resources python-setuptools --reinstall


0

尝试安装python-pip(及其依赖项):

yum install python-pip

这解决了我的问题(Centos release 6.8)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接