【问题标题】:AttributeError: 'module' object has no attribute 'python_implementation' running pipAttributeError:“模块”对象没有属性“python_implementation”正在运行 pip
【发布时间】:2014-04-21 17:28:34
【问题描述】:

我使用 Python 设置工具安装了 Cygwin。当我尝试运行 pip install awscli 时,出现以下错误:

$ pip install awscli
Traceback (most recent call last):
  File "/usr/bin/pip", line 8, in <module>
    load_entry_point('pip==1.5.4', 'console_scripts', 'pip')()
  File "build/bdist.linux-i686/egg/pkg_resources.py", line 318, in load_entry_point
  File "build/bdist.linux-i686/egg/pkg_resources.py", line 2221, in load_entry_point
  File "build/bdist.linux-i686/egg/pkg_resources.py", line 1954, in load
  File "/usr/lib/python2.5/site-packages/pip-1.5.4-py2.5.egg/pip/__init__.py", line 9, in <module>
    from pip.log import logger
  File "/usr/lib/python2.5/site-packages/pip-1.5.4-py2.5.egg/pip/log.py", line 9, in <module>
    from pip._vendor import colorama, pkg_resources
  File "/usr/lib/python2.5/site-packages/pip-1.5.4-py2.5.egg/pip/_vendor/pkg_resources.py", line 1112, in <module>
    class MarkerEvaluation(object):
  File "/usr/lib/python2.5/site-packages/pip-1.5.4-py2.5.egg/pip/_vendor/pkg_resources.py", line 1120, in MarkerEvaluation
    'python_implementation': platform.python_implementation,
AttributeError: 'module' object has no attribute 'python_implementation'

我是在我的路径中遗漏了什么,还是我的 Python 实现被破坏了?

【问题讨论】:

  • 尝试从github下载模块并运行python setup.py install

标签: python cygwin pip


【解决方案1】:

我将在列表中添加另一个名称:我在启动目录中有一个名为 profile.py 的脚本,它导致了同样的问题。

奇怪的是,我认为我可能在目录中有一个名为platform.py 的文件。我在制造涡轮叶片时使用 Python,这些叶片具有我们称为“平台”的功能。它们还有一个“轮廓”(准确地说是翼型前缘轮廓),当我看到 profile.py 时,一个灯泡熄灭了,因为我知道标准库中 Python 的“轮廓”模块。

有趣的是,这以前从未出现过 - 我从 ~Python2.7.9 开始就一直在使用 IPython,并且在 3.6 天甚至没有问题(我正在升级到 3.8.6)。

【讨论】:

    【解决方案2】:

    与其他人发布的内容类似,我在拥有 platform.py 文件(而不是目录)时遇到了同样的错误。我重命名它并且错误消失了。

    【讨论】:

      【解决方案3】:

      重新安装pip 可能会修复它,使用easy_install 试试:

      sudo easy_install pip

      【讨论】:

        【解决方案4】:

        当我用于 linux (fedora) 系统的 .virtualenvs 文件夹符号链接到网络共享驱动器(在 Windows 服务器上)时,我收到此错误。升级系统pip

        sudo pip install --upgrade pip
        

        然后用一个新的 virtualenv 在本地创建一个新的 ~/.virtualenvs/ 对我来说是成功的。

        【讨论】:

          【解决方案5】:

          您的 python 应用程序中是否有一个名为“/platform”的文件夹?明白了!我删除了我自己的 platform.py,它仍然无法正常工作。后来我删除了剩下的platform.pyc,它起作用了!

          【讨论】:

          • 那么,您是否建议他们删除 platform.pyc?
          • 是的,运行“import platform”的时候,首先找到platform.pyc,如果存在就直接运行。如果没有,它将编译并生成 platform.pyc 然后运行它。所以如果你不想覆盖python的platform.py,你应该清除所有它们。
          【解决方案6】:

          您的 python 应用程序中是否有一个名为“/platform”的文件夹?

          如果你这样做,它将对原生 python“平台”模块进行作用域阴影。当您使用的模块尝试获取有关系统的信息时,它们将返回一个空对象。这通常会导致如下错误:

          AttributeError: 'module' object has no attribute 'version'

          AttributeError: 'module' object has no attribute 'machine'

          AttributeError: 'module' object has no attribute 'python_implementation'

          只需将“/platform”文件夹重命名为其他名称即可解决问题。

          【讨论】:

          • 我有一个名为 platform 的文件,这对我有帮助。谢谢!
          • 疯了。我的脚本被称为 platform.py,因为这是我创建的一个非常合理的名称;但显然这个名字是禁止使用的。
          • 生命得救。谢谢
          猜你喜欢
          • 1970-01-01
          • 2015-05-16
          • 2010-11-18
          相关资源
          最近更新 更多