无法在kivy启动器中为Android运行“hello world”python代码(can't run “hello world” python code in kivy launcher

系统教程 行业动态 更新时间:2024-06-14 16:57:40
无法在kivy启动器中为Android运行“hello world”python代码(can't run “hello world” python code in kivy launcher for android) python

我正试图在我的nexus 5上的kivy启动器中从kivy.org运行此代码。我在kivy文件夹和“android.txt”文件中创建了一个文件夹。 这是main.py:

import kivy kivy.require('1.9.0') from kivy.app import App from kivy.uix.label import Label class TestApp(App): def build(self): return Label(text='Hello World') if __name__ == '__main__': TestApp().run()

当我从启动器启动它时它立即崩溃。这是我在logs文件夹中得到的:

[INFO ] Logger: Record log in /storage/emulated/0/kivy/myshit/.kivy/logs/kivy_15-05-01_6.txt [INFO ] Kivy: v1.9.0 [INFO ] Python: v2.7.2 (default, Apr 2 2015, 13:52:41) [GCC 4.8] [INFO ] Factory: 173 symbols loaded [WARNING ] stderr: /data/data/org.kivy.pygame/files/lib/python2.7/site-packages/kivy/core/image/img_pygame.py:1.3: RuntimeWarning: import cdrom: No module named cdrom [WARNING ] stderr: (ImportError: No module named cdrom) [INFO ] Image: Providers: img_tex, img_dds, img_gif, img_pygame, img_pil (img_ffpyplayer ignored) [WARNING ] stderr: Traceback (most recent call last): [WARNING ] stderr: File "main.py", line 9, in <module> [WARNING ] stderr: return Label(text='Hello World') [WARNING ] stderr: File "/home/tito/code/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/app.py", line 798, in run [WARNING ] stderr: File "main.py", line 7, in build [WARNING ] stderr: class TestApp(App): [WARNING ] stderr: NameError: global name 'Label' is not defined

请指导我做错了什么? PS我不编译应用程序,我只是想在启动器中运行它。 示例游戏和展示工作正常。

I'm trying to run this code from kivy.org in kivy launcher on my nexus 5. I've made a folder in kivy folder and "android.txt" file. Here's main.py:

import kivy kivy.require('1.9.0') from kivy.app import App from kivy.uix.label import Label class TestApp(App): def build(self): return Label(text='Hello World') if __name__ == '__main__': TestApp().run()

When i start it from launcher it crashes instantly.And this is what I get in logs folder:

[INFO ] Logger: Record log in /storage/emulated/0/kivy/myshit/.kivy/logs/kivy_15-05-01_6.txt [INFO ] Kivy: v1.9.0 [INFO ] Python: v2.7.2 (default, Apr 2 2015, 13:52:41) [GCC 4.8] [INFO ] Factory: 173 symbols loaded [WARNING ] stderr: /data/data/org.kivy.pygame/files/lib/python2.7/site-packages/kivy/core/image/img_pygame.py:1.3: RuntimeWarning: import cdrom: No module named cdrom [WARNING ] stderr: (ImportError: No module named cdrom) [INFO ] Image: Providers: img_tex, img_dds, img_gif, img_pygame, img_pil (img_ffpyplayer ignored) [WARNING ] stderr: Traceback (most recent call last): [WARNING ] stderr: File "main.py", line 9, in <module> [WARNING ] stderr: return Label(text='Hello World') [WARNING ] stderr: File "/home/tito/code/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/app.py", line 798, in run [WARNING ] stderr: File "main.py", line 7, in build [WARNING ] stderr: class TestApp(App): [WARNING ] stderr: NameError: global name 'Label' is not defined

Please guide me what do I do wrong? P.S. I don't compile app, I just wonna run it in launcher. Sample games and showcase work fine.

最满意答案

尝试这个:

import kivy kivy.require('1.9.0') from kivy.app import App from kivy.lang import Builder kv = ''' Label: text: "Hello World" ''' class TestApp(App): def build(self): return Builder.load_string(kv) if __name__ == '__main__': TestApp().run()

老实说,我不知道为什么你的代码不能运行,但我还没有看到有人直接从构建方法返回一个kivy小部件(如Label或Button ),所以也许它与某些事情有关那。 从我所看到的,通常构建方法返回一个类的实例,该类是应用程序的根小部件。 该类通常似乎继承自kivy布局或Widget类本身,并封装其他所有内容,作为小部件树的根。

Try this:

import kivy kivy.require('1.9.0') from kivy.app import App from kivy.lang import Builder kv = ''' Label: text: "Hello World" ''' class TestApp(App): def build(self): return Builder.load_string(kv) if __name__ == '__main__': TestApp().run()

I honestly don't know why you're code wouldn't run, but I haven't seen someone just straight-up return a kivy widget(like Label or Button) from the build method before, so perhaps it's something to do with that. From what I've seen, usually the build method returns an instance of a class that is the root widget of an app. That class often seems to either inherit from a kivy layout, or the Widget class itself, and encapsulates everything else, as the root of the widget tree.

更多推荐

本文发布于:2023-04-13 12:13:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/f0898858021b8e56a48c34388682bc3f.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:启动器   中为   代码   world   kivy

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!