【问题标题】:Confusion regarding python 2.6/2.7 package installations关于 python 2.6/2.7 软件包安装的困惑
【发布时间】:2015-10-10 03:08:28
【问题描述】:

我有一个 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

谢谢

【问题讨论】:

    标签: python-2.7 installation package pip


    【解决方案1】:

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

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

    解决了问题

    【讨论】:

    • 我不得不在我的 OSX (10.10) 上执行 sudo chmod -R ugo+rX /Library/Python/2.7/site-packages/ 并修复了同样的问题。谢谢。
    • 我被告知这是一个安全漏洞,因为它允许任何用户安装 python 模块。
    【解决方案2】:

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

    brew remove python --force

    这个为我修好了。

    【讨论】:

      【解决方案3】:

      可以使用以下答案中提供的步骤修复此情况:Easy_install and pip broke: pkg_resources.DistributionNotFound: distribute==0.6.36

      它只是将当前的 pip 安装(指新的/错误的 python 环境)替换为新的/正确的。

      【讨论】:

        猜你喜欢
        • 2012-08-13
        • 2014-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-07
        • 2022-08-02
        相关资源
        最近更新 更多