【问题标题】:How to Run Kivy Python programs on PC?如何在 PC 上运行 Kivy Python 程序?
【发布时间】:2016-04-18 01:29:21
【问题描述】:

我需要使用 python 开发一个在 android 上运行的程序。为此,我听说 kivy 是最好的模块。所以我尝试在我的电脑上安装和运行 kivy。 我的是 Windows 7 电脑。

为了实现这一点,我做了以下事情:

  1. 我从https://pypi.python.org/pypi/Kivy#downloads下载了包文件
  2. 然后我用win rar打开包并将内容粘贴到我的python27/lib文件夹中

现在当我输入以下内容时

    import kivy

以下消息来了:

    [INFO              ] [Logger      ] Record log in      
    C:\Users\UserName\.kivy\logs\kivy_16-04-17_4.txt
    [INFO              ] [Kivy        ] v1.9.1
    [INFO              ] [Python      ] v2.7.4 (default, Apr  6 2013, 19:54:46) [MSC v.1500 32 bit (Intel)]

但是当我尝试运行像这样简单的代码时:

    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()

弹出如下错误信息。

    Traceback (most recent call last):
    File "D:/Python27/unfinished buisness/ufb.py", line 4, in <module>
     from kivy.app import App
    File "D:\Python27\lib\kivy\app.py", line 327, in <module>
     from kivy.uix.widget import Widget
    File "D:\Python27\lib\kivy\uix\widget.py", line 219, in <module>
     from kivy.graphics import (
    File "D:\Python27\lib\kivy\graphics\__init__.py", line 89, in <module>
     from kivy.graphics.instructions import Callback, Canvas, CanvasBase, \
    ImportError: DLL load failed: The specified module could not be found.

(但是当我使用 Qpython { 已经安装了 kivy } 在我的 android 手机上运行此代码时,它运行顺利)

我哪里出错了?我是不是安装错了?

甚至可以在电脑上运行 Kivy 吗?还是只能在安卓手机上运行?

另外,我想建议我们可以使用 python 开发 android 应用程序的任何其他模块。

【问题讨论】:

  • 大约一年前我在 Kivy 做过一些工作(在 PC 上,但在 Ubuntu 上)。我不能告诉你出了什么问题,但它在我的机器上运行没有任何问题。我记得 Kivy 是,至少在那个时候,它已经发展成为尽可能多的跨平台。不利的一面是,python 代码被翻译成 Java 并通过奇怪的 mp3 格式发送,导致即使是非常小的应用程序(单击一个按钮)也有大约 30MB 大,启动时间约为 6 秒。无论如何,尝试通过他们的 IRC 联系 Kivy 开发人员,这是恕我直言的最佳方式。
  • @quapka mp3 仅作为包含其他文件的“文件”存在(如果您愿意,可以存档)。由于 python 解释器,每个 APK 都很大,但有人建议如何使它更小。 APK 本身很小(虽然不像纯 java),更糟糕的是它与应用程序 data 一起使用,因为它们约为 30MB。您可以使用 Kivy Launcher(针对开发人员)或希望设备的情况会变得更好(已经有一些型号的存储空间比 Android 2.3 大很多倍)。如果您已植根手机,则可以删除不必要的数据。我知道这是不可取的,但是嘿......你想用 java 编码吗?
  • 嗨@KeyWeeUsr!请不要把我之前的评论当作抱怨(尽管我同意这听起来像)。正如你所说的你想用java编码吗?我不想,我没有反对Java,只是为了一些简单的应用程序学习Java很痛苦。因此,我在找到它后立即切换到 Kivy。但它几乎让我哭了,因为它没有给出同样的可能性。我想这太好了,至少在当时是这样。我喜欢使用 Kivy 并从中获得了很多乐趣(希望如此)。你是 Kivy 的开发者之一,对吧?感谢您的出色工作!
  • @quapka 感谢您的赞美,但不......不是来自开发人员,只是一个普通用户:D 我只是为了解释事情而写它,因为我认为 OP 是初学者(至少在 kivy 中),所以可能会吓到他。实际上,您可以访问 java 类并以跨平台的方式有更多的可能性,但是是的,有限制。当我第一次看到 kivy 时,就像:“哇,有人让原始的 java 目的成为可能?而且它是可读的?”尝试“编译一次,到处运行”大声笑。给它几年时间,对于许多 kivy 应用程序来说,存储空间会更加宽容。 :)

标签: android python kivy


【解决方案1】:

你已经安装了kivy,但是没有正确安装。正如它所说,缺少一个 DLL - 一个重要的,因此它甚至不会运行。你的代码没问题,不用担心。

Kivy 可以在 Kivy 支持的每个平台上运行,否则会有点……嗯,你知道的。只是不要使用复制和粘贴来安装它,而是按照here 中提到的正确方式安装它 + 不要忘记在安装 kivy 之前安装库。对于 android,您需要使用 vdi 否则它将无法作为 APK 发布(例如用于 google play)。

QPython 对于初学者来说是一个很棒的工具,但缺点是当你有大文件时,编辑器会有滞后,而且他们不使用最新的 kivy afaik。

另外,使用pip 并避免使用包的麻烦,因为有时它可能会很痛苦。为此我创建了KivyInstaller,因为初学者有时会在 Windows 上遇到问题 - 或者大多数人决定先使用 python 和 kivy 学习编码。虽然不是一个坏主意,但他们没有阅读文档,只是跳到“安装”这个词,然后......你去吧。

推荐的包基本上在kivy github,如果你打算在android上工作,它们非常有用。还有modules 专门为 kivy 开发的。

【讨论】:

  • 感谢您的文件@KeyWeeUsr。我删除了我的文件(我手动下载并复制到 Lib)并使用您的批处理文件再次下载 kivy 但再次完全相同的警告或错误即将到来。消息说它无法加载画布或画布库。 (我禁用了所有防火墙,因此不可能有文件未安装)
  • 错误提示 Dll 加载失败。有没有办法找出它所引用的 dll 文件的名称?
  • @AV198 instrctions.pyd 我猜?或者基本上任何带有.pyd 的东西,要么丢失要么编译错误。轮子已经编译好了,所以......我认为只缺少。我还看到你有 python 2.7.4,可能值得尝试通过 KivyInstaller 安装 python(它将安装 2.7.11,所以你的 2.7.4 将保持不变)并尝试从 python 进行整个安装,直到 kivy。即使使用 KivyInstaller O.o 出现 DLL 错误也很奇怪
  • 它没有多大帮助,但还是谢谢。也许是我的电脑系统负责,因为安装程序在我的笔记本电脑上运行良好。
猜你喜欢
  • 2017-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-07
  • 1970-01-01
  • 2021-09-14
  • 1970-01-01
  • 2013-08-31
相关资源
最近更新 更多