关于 python 2.6/2.7 软件包安装的困惑

Confusion regarding python 2.6/2.7 package installations

我有一个 Redhat 6 盒子,最初安装了 python 2.6(由 /usr/bin/python 调用)。几天前我安装了 2.7.10(由 /usr/local/bin/python 或简单地 python 调用)。

今天早些时候,我使用 sudo easy_install pip 安装了 pipwhereis pip 的结果是 pip: /usr/bin/pip2.6 /usr/bin/pip

然后我想通过 运行 sudo pip install pandas 安装 pandas 包。它报告成功,但 import pandas 为 python 的两个版本产生错误:

myPrompt 733] python
Python 2.7.10 (default, Jul 16 2015, 14:41:11) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pandas
>>> exit()

myPrompt 734] /usr/bin/python
Python 2.6.6 (r266:84292, Nov 21 2013, 10:50:32) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pandas
>>> exit()

myPrompt 735] pip install pandas
Traceback (most recent call last):
  File "/usr/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2655, in <module>
    working_set.require(__requires__)
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 648, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 546, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==7.1.0

myPrompt 736] sudo pip install pandas
Enter PASSCODE:
Requirement already satisfied (use --upgrade to upgrade): pandas in /usr/lib64/python2.6/site-packages
Requirement already satisfied (use --upgrade to upgrade): python-dateutil in /usr/lib/python2.6/site-packages (from pandas)
Requirement already satisfied (use --upgrade to upgrade): pytz>=2011k in /usr/lib/python2.6/site-packages (from pandas)
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.7.0 in /usr/lib64/python2.6/site-packages (from pandas)
Requirement already satisfied (use --upgrade to upgrade): six>=1.5 in /usr/lib/python2.6/site-packages (from python-dateutil->pandas)

所以 pip 配置和包的安装方式有些混乱。我该如何解决这个问题?我需要重新安装 pip 吗?

最终,我不关心 python 2.6,只想使用 2.7

感谢

看起来原因是我以 root 身份安装了软件包。正在做

sudo chmod -R ugo+rX /usr/local/lib/python2.7/site-packages

解决了问题

作为参考,当您有多个 Python 安装时可能会发生这种情况,例如通过 brew。在那种情况下删除一个:

brew remove python --force

这个为我修好了。

可以使用以下答案中提供的步骤解决此问题:Easy_install and pip broke: pkg_resources.DistributionNotFound: distribute==0.6.36

它只是将当前的 pip 安装(指的是 new/wrong python 环境)替换为 fresh/correct 一个。