我只是想安装kivy来测试它并制作一些应用程序
我安装了cython和其他东西
然后我输入终端(ubuntu 12.04):
sudo easy_install kivy
Run Code Online (Sandbox Code Playgroud)
作为答案我得到了这个:
Searching for kivy
Reading http://pypi.python.org/simple/kivy/
Best match: Kivy 1.2.0
Downloading http://pypi.python.org/packages/source/K/Kivy/Kivy-1.2.0.tar.gz#md5=468da8a353c2ea4936eb92d71403c960
Processing Kivy-1.2.0.tar.gz
Running Kivy-1.2.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-rcrkeK/Kivy-1.2.0/egg-dist-tmp-xdOqxi
[INFO ] Kivy v1.2.0
WARNING: GLES 2.0 headers are not found
Fallback to Desktop opengl headers.
Build configuration is:
* use_opengl_es2 = False
* use_glew = False
* use_opengl_debug = False
* use_mesagl = False
Generate config.h
Generate config.pxi
In file included from /tmp/easy_install-rcrkeK/Kivy-1.2.0/kivy/graphics/texture.c:273:0:
/tmp/easy_install-rcrkeK/Kivy-1.2.0/kivy/graphics/gl_redirect.h:38:22: fatal error: GL/gl.h: El fitxer o directori no …Run Code Online (Sandbox Code Playgroud) 试图解决导入错误的大部分时间我一直在摔跤.
这是一个常见问题,但之前的问题没有完全解决我的问题.
我正在使用PyDev(一个Eclipse插件)和库Kivy(一个Python库)
我有一个像这样设置的文件结构:
<code>
__init__.py
main.py
engine.py
main_menu_widget.py
Run Code Online (Sandbox Code Playgroud)
"代码"保存在eclipse文件夹"MyProject"中,但它不是包,所以我没有包含它.
文件看起来像这样:
main.py
# main.py
from code.engine import Engine
class MotionApp(App):
# Ommited
Run Code Online (Sandbox Code Playgroud)
engine.py
# engine.py
from code.main_menu_widget import MainMenuWidget
class Engine():
# Ommited
Run Code Online (Sandbox Code Playgroud)
main_menu_widget.py
# main_menu_widget.py
from code.engine import Engine
class MainMenuWidget(Screen):
pass
Run Code Online (Sandbox Code Playgroud)
我收到的错误详细信息是:
Traceback (most recent call last):
File "C:\MyProject\code\main.py", line 8, in <module>
from code.engine import Engine
File "C:\MyProject\code\engine.py", line 6, in <module>
from code.main_menu_widget import MainMenuWidget
File "C:\MyProject\code\main_menu_widget.py", line 3, in <module>
from code.engine import Engine
Run Code Online (Sandbox Code Playgroud)
知道我在这里做错了吗?我刚刚重命名了我的整个文件夹结构,因为我搞砸了这个模块结构这么糟糕,但我觉得我接近它应该看起来......
这与另一个问题非常相关.唯一的区别是我是动态添加Ellipse with self.canvas而不是使用Builder(Builder.load_string或Builder.load_file).因此,这里的代码,做工作.当您单击椭圆时,它会移动并更改颜色:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.widget import Widget
from kivy.properties import NumericProperty
from kivy.graphics import Color, Ellipse
Builder.load_string("""
<CircleWidget>:
canvas:
Color:
rgba: self.r,1,1,1
Ellipse:
pos: self.pos
size: self.size
""")
class CircleWidget(Widget):
r = NumericProperty(0)
def __init__(s, **kwargs):
s.size= [50,50]
s.pos = [100,50]
super(CircleWidget, s).__init__(**kwargs)
def on_touch_down(s, touch):
if s.collide_point(touch.x,touch.y):
s.pos = [s.pos[1],s.pos[0]] # this works
s.r = 1.0 # this also works
class TestApp(App): …Run Code Online (Sandbox Code Playgroud) 我正在制作一个像大表盘一样旋转的圆圈.目前,我在顶部有一个箭头,显示表盘朝向哪个方向.我希望它的行为有点像一个老式的旋转手机,这样当你的手指/光标向下时你可以旋转它,但它会(放慢)在你松开后慢慢地回到顶部.
这是我的对象的样子:

这是我的代码:
#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
import math
from random import random
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.gridlayout import GridLayout
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.relativelayout import RelativeLayout
from kivy.graphics import Color, Ellipse, Rectangle
class MinimalApp(App):
title = 'My App'
def build(self):
root = RootLayout()
return(root)
class RootLayout(AnchorLayout):
pass
class Circley(RelativeLayout):
angle = 0
def on_touch_down(self, touch):
ud = touch.ud
ud['group'] = g = str(touch.uid)
return True
def on_touch_move(self, touch):
ud = touch.ud
# print(touch.x, …Run Code Online (Sandbox Code Playgroud) 我正在创建一个kivy用户界面来显示由我编写为标准python对象的数据模型生成的值.本质上,我希望用户能够按下一个按钮,这将改变底层数据模型,并且将自动更新和显示此更改的结果.我的理解是,这可以使用kivy属性(在本例中为ObjectProperty)来实现.
这是一些示例代码:
import kivy
kivy.require('1.7.0')
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import ObjectProperty
from kivy.lang import Builder
Builder.load_string("""
<RootWidget>:
cols: 2
Label:
text: "Attribute a:"
Label:
text: root.data_model.a
Label:
text: "Attribute b:"
Label:
text: root.data_model.b
Label:
text: "Attribute c:"
Label:
text: root.data_model.c
Button:
text: "Make data_model.a longer"
on_press: root.button_press()
Button:
text: "Make data_model.b shorter"
on_press: root.button_press2()
""")
class DataModel(object):
def __init__(self):
self.a = 'This is a'
self.b ='This is b'
@property
def c(self):
return self.a + …Run Code Online (Sandbox Code Playgroud) 进一步潜入kivy,我开始想知道有哪些地图选项(谷歌地图或类似开放的街道地图).到目前为止我发现了什么:
KivyMaps 链接到目前为止我找到的最有用的模块.它应该适用于mac,windows,android和iOS(实验),但是:我没有在任何地方找到文档!我google了很多,仍然不知道如何使用kivyMaps
Kivy Mapview 链接可用槽式花园.好的文档,但他们说它只适用于android.对我来说,它确实可以在Kivy + Mac上运行,至少可以显示和移动地图.设置坐标并更改它们不会.
所以我想我的问题是:你用什么?我错过了其他可用选项吗?KivyMaps文档在哪里(有人可以提供示例吗?)
我正在尝试将我的Kivy应用程序打包为Windows,但我遇到了一些问题.按照kivy文档中的说明,我创建并编辑了spec文件.我既不使用pygame也不使用SDL2(我的意思是我不直接导入它们来运行我的程序),但在Kivy日志中我看到pygame仍然提供了我的窗口:
[INFO ] [Text ] Provider: pygame
[INFO ] [Window ] Provider: pygame
Run Code Online (Sandbox Code Playgroud)
我不明白为什么,因为我正在使用kivy 1.9.0.
说,我在构建规范时遇到了这个问题:
(...)
202 WARNING: stderr: File "C:\Program Files\Python Kivy-1.9.0-py3.4-win32-x86\kivy34\kivy\tools\packaging\pyinstaller_hooks\__init__.py", line 13, in install_hooks
sym['rthooks']['kivy'] = [join(curdir, 'rt-hook-kivy.py')]
202 WARNING: stderr: sym['rthooks']['kivy'] = [join(curdir, 'rt-hook-kivy.py')]
KeyError: 'rthooks'
202 WARNING: stderr: KeyError: 'rthooks'
Run Code Online (Sandbox Code Playgroud)
我对编辑规范有点困惑(我需要导入pygame/SDL2?),这可能是我的问题.我使用的是Windows 7 x86,Python 3.4.3和Kivy 1.9.0.任何帮助表示赞赏.
这不起作用:
$ kivy --version
Python 2.7.6
Run Code Online (Sandbox Code Playgroud)
我已经Kivy.app安装了,它也没有提供任何版本信息.
没有在kivy论坛得到回复,所以试试这里.
当我将教程pong代码编译为一个文件可执行文件时,我仍然必须将pong.kv文件包含在同一个文件夹中才能运行.否则,启动exe时出现以下错误:
GL: EXT_framebuffer_object is supported
[INFO ] [GL ] OpenGL version
[INFO ] [GL ] OpenGL vendor
[INFO ] [GL ] OpenGL renderer
[INFO ] [GL ] OpenGL parsed version: 2, 1
[INFO ] [GL ] Shading version
[INFO ] [GL ] Texture max size
[INFO ] [GL ] Texture max units
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed,
single mode, not docked
Traceback (most recent call last):
File … 我正在尝试将Kivy程序编译到iOS上,但是当我运行命令来构建Kivy发行版时,我不断收到此错误:
xcrun:错误:无法找到SDK"iphonesimulator"
我的电脑上有xcode.到底是怎么回事?