新的 Kivy 安装:AttributeError: 'module' 对象没有属性 'require'

Posted

技术标签:

【中文标题】新的 Kivy 安装:AttributeError: \'module\' 对象没有属性 \'require\'【英文标题】:New Kivy installation: AttributeError: 'module' object has no attribute 'require'新的 Kivy 安装:AttributeError: 'module' 对象没有属性 'require' 【发布时间】:2017-10-09 08:45:20 【问题描述】:

kivy 1.10.0,python 3.4.5,windows 10,使用 Anaconda 的 Spyder IDE

在尝试在我的 Windows 10 计算机上安装 kivy 遇到很多麻烦之后,我能够...有点。我将 python 降级到了最新支持的版本。

我输入了 kivy 的股票代码以确保它正常工作:

import kivy
kivy.require('1.0.6') # replace with your current kivy version !

from kivy.app import App
from kivy.uix.label import Label


class MyApp(App):

    def build(self):
        return Label(text='Hello world')


if __name__ == '__main__':
    MyApp().run()

将我的版本更改为 1.10.0。但是我得到了以下错误并回溯:

Traceback(最近一次调用最后一次):

文件“”,第 1 行,在 runfile('C:/Users/Andrew/Documents/Programming/Kivvv/UsageExample.py', wdir='C:/Users/Andrew/Documents/Programming/Kivvv')

文件“C:\Users\Andrew\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py”,第 866 行,在运行文件中 execfile(文件名,命名空间)

文件“C:\Users\Andrew\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py”,第 102 行,在 execfile exec(编译(f.read(),文件名,'exec'),命名空间)

文件“C:/Users/Andrew/Documents/Programming/Kivvv/UsageExample.py”,第 12 行,在 kivy.require('1.10.0') # 替换成你当前的kivy版本!

AttributeError: 'module' 对象没有属性 'require'

也跑了

print(dir(kivy))

返回此列表:

['doc', 'loader', 'name', 'package', '路径', '规范']

我的猜测是 kivy 没有正确安装,但我在安装它时遇到了很多麻烦,以至于我不想重新安装它,直到这显然是下一个最佳选择。

另外,如果有帮助,在 kivy 网站上运行 kivy 安装过程时,即使每个步骤都成功完成,几个步骤也会返回有关“分割线”的错误--

例外:

Traceback(最近一次调用最后一次):

文件“C:\Users\Andrew\Anaconda3\lib\site-packages\pip\basecommand.py”,第 215 行,在 main

status = self.run(options, args)

文件“C:\Users\Andrew\Anaconda3\lib\site-packages\pip\commands\install.py”,第 335 行,运行中

wb.build(autobuilding=True)

文件“C:\Users\Andrew\Anaconda3\lib\site-packages\pip\wheel.py”,第 749 行,在构建中

self.requirement_set.prepare_files(self.finder)

文件“C:\Users\Andrew\Anaconda3\lib\site-packages\pip\req\req_set.py”,第 380 行,在 prepare_files 中

ignore_dependencies=self.ignore_dependencies))

文件“C:\Users\Andrew\Anaconda3\lib\site-packages\pip\req\req_set.py”,第 666 行,在 _prepare_file 中

check_dist_requires_python(dist)

文件“C:\Users\Andrew\Anaconda3\lib\site-packages\pip\utils\packaging.py”,第 48 行,在 check_dist_requires_python 中

feed_parser.feed(metadata)

文件“C:\Users\Andrew\Anaconda3\lib\email\feedparser.py”,第 177 行,在提要中

self._input.push(data)

文件“C:\Users\Andrew\Anaconda3\lib\email\feedparser.py”,第 100 行,正在推送中

parts = data.splitlines(True)

AttributeError: 'NoneType' 对象没有属性 'splitlines'

不确定它是否会有所不同,但我决定将其包含在内,以防万一它是对正在发生的事情的一个很好的线索。

非常感谢!!!

2017 年 5 月 12 日更新:

我继续尝试通过将程序粘贴到记事本中并从那里运行它,但我收到了相同的错误消息。

然后我做了

python -m pip list 

在powershell中,这些都没有弹出:

Kivy (1.10.0)
Kivy-Garden (0.1.4)
kivy.deps.angle (0.1.4)
kivy.deps.glew (0.1.9)
kivy.deps.sdl2 (0.1.17)

看来kivy毕竟没有安装。尝试再次运行安装后,我的计算机向我回击了以下内容:

PS C:\Users\Andrew> python -m pip install kivy
Collecting kivy
  Using cached Kivy-1.10.0-cp34-cp34m-win_amd64.whl
Collecting Kivy-Garden>=0.1.4 (from kivy)
  Using cached kivy-garden-0.1.4.tar.gz
Requirement already satisfied: docutils in 
c:\users\andrew\anaconda3\lib\site-packages (from kivy)
Requirement already satisfied: pygments in 
c:\users\andrew\anaconda3\lib\site-packages (from kivy)
Exception:
Traceback (most recent call last):
  File "C:\Users\Andrew\Anaconda3\lib\site-packages\pip\basecommand.py", 
line 215, in main
    status = self.run(options, args)
  File "C:\Users\Andrew\Anaconda3\lib\site-
packages\pip\commands\install.py", line 335, in run
    wb.build(autobuilding=True)
  File "C:\Users\Andrew\Anaconda3\lib\site-packages\pip\wheel.py", line 749, in build
    self.requirement_set.prepare_files(self.finder)
  File "C:\Users\Andrew\Anaconda3\lib\site-packages\pip\req\req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "C:\Users\Andrew\Anaconda3\lib\site-packages\pip\req\req_set.py", line 666, in _prepare_file
    check_dist_requires_python(dist)
  File "C:\Users\Andrew\Anaconda3\lib\site-packages\pip\utils\packaging.py", line 48, in check_dist_requires_python
    feed_parser.feed(metadata)
  File "C:\Users\Andrew\Anaconda3\lib\email\feedparser.py", line 177, in feed
    self._input.push(data)
  File "C:\Users\Andrew\Anaconda3\lib\email\feedparser.py", line 100, in push
    parts = data.splitlines(True)
AttributeError: 'NoneType' object has no attribute 'splitlines'

由于我没有收到“已安装 kivy”的消息,看来此“拆分线”属性错误正在阻止安装完成。知道如何解决这个问题吗?

【问题讨论】:

抱歉,我无法帮助您解决错误,我只想指出,在 Windows 上使用任何 Python 版本安装 Kivy 都没有什么难的。您需要将 Kivy 安装为纯 Python 模块:1) 从 kivy.org/downloads/appveyor/kivy 下载您想要的 Python 版本的 whl 文件 2) 使用 pip install your_filename_here.whl 安装此文件。 【参考方案1】:

由于文件名显示错误,您正在保存名为“kivy.py”的文件,而这又与 kivy 核心包相矛盾。尝试重命名文件希望对您有所帮助。

【讨论】:

【参考方案2】:

所以在我看来,您的问题更有可能与 ide 有关。事实上,如果我是一个赌徒,我会打赌我所拥有的一切,你的 IDE 就是问题所在。

请仔细阅读我的答案并尝试我发布的两个脚本。您现在需要做的最重要的事情是将 python 代码粘贴到记事本中并通过命令行运行它。

如果它有效,您就知道您的问题是什么。如果它没有尝试我在下面列出的所有步骤。您的 ide 很可能指向错误的路径或类似的东西。

请尝试以下方法。

第 1 步:

python -m pip list 

找到您的 kivy 安装并验证它在那里,以及它的版本。您应该会看到类似

的内容
Kivy (1.10.0)
Kivy-Garden (0.1.4)
kivy.deps.angle (0.1.4)
kivy.deps.glew (0.1.9)
kivy.deps.sdl2 (0.1.17)

如果您看到复制粘贴下面的示例并尝试运行它。

第 2 步:脚本

import kivy


from kivy.app import App
from kivy.uix.label import Label


class MyApp(App):
    def build(self):
        return Label(text='Hello world')


if __name__ == '__main__':
    MyApp().run()

如果您遇到相同的错误。

试试下面的 python -m pip 显示 kivy

你应该看到类似

的东西
Name: Kivy
Version: 1.10.0
Summary: A software library for rapid development of hardware-accelerated 
multitouch applications.
Home-page: http://kivy.org
Author: Kivy Team and other contributors
Author-email: kivy-dev@googlegroups.com
License: MIT
Location: c:\python36-32\lib\site-packages
Requires: pygments, Kivy-Garden, docutils

如果你看到这个并且即使你没有运行下面的命令

python -m pip check kivy

这将告诉你是否满足了 kivy 所需的所有依赖项。如果没有通过并安装它们。

根据我掌握的当前信息,我可能无法帮助您解决一些问题,所以我的最后一条建议是作为最后的手段。

python -m pip uninstall kivy
python -m pip install kivy==1.10.0

更新: 我从来没有使用过power shell,所以我不知道它是如何工作的。尝试使用命令提升。你也在使用 Anacondas IDE,但你也在使用 Anaconda Python 吗?如果是这样,某些命令是不同的,您必须绕过它并使用官方工具。以确保它不是兼容性问题。 https://docs.continuum.io/anaconda/faq

根据我在错误代码中看到的内容,您的 kivy 安装在那里并且很好。这意味着它与蜘蛛直接相关。

【讨论】:

抱歉,不确定如何在 *** 中发送 pm,但我确实更新了我的问题。往上看。非常感谢您的帮助! docs.continuum.io/anaconda/faq 我的意思是我个人不喜欢这个,我更喜欢官方的 Python。话虽如此,您需要设置捆绑 Python 安装的路径并运行它。此外,我从未真正使用过电源外壳,所以我不能说其中任何一个是否可以在其中起作用,尽管我认为它会起作用。问题在于您的 ide,因此您需要尝试确定是否可以在不使用代码的情况下运行代码。检查该链接以找到命令并尝试使用 cmd 而不是 power shell。

以上是关于新的 Kivy 安装:AttributeError: 'module' 对象没有属性 'require'的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:“kivy.properties.ObjectProperty”对象没有属性“manager1”

使用 Kivy 切换屏幕:AttributeError: 'NoneType' object has no attribute 'transition'

Kivy - AttributeError:“NoneType”对象没有属性“add_widget”

AttributeError:“超级”对象没有属性“__getattr__”[疑难解答:Kivy]

Kivy Scrollview:AttributeError:“NoneType”对象没有属性“绑定”

Kivy Buildozer AttributeError:“上下文”对象没有属性“hostpython”