1

我正在使用 python 2.7 和 Kivy 的 64x 机器上运行,并为 pyscripter 设置它。

所以我使用了这个stackoverflow问题的第二个答案中的脚本

我可以在 Pyscripter 中运行 Kivy 程序吗?

基本上我进入工具和“编辑启动脚本”并将kivy_path脚本替换到我的 kivy 目录。

# This startup script makes it possible to Pyscripter to work with the kivy package

import sys
import os

kivy_path = 'C:/kivy27'
relative_modules_paths = ['/kivy',
                          '/Python/',
                          '/Python/Lib/',
                          '/Python/Lib/Site-packages/',]

# tells the interpreter to look for python modules in the kivy modules' paths
for relative_path in relative_modules_paths:
    sys.path.append( kivy_path+relative_path )

# sets some environment variables needed by kivy. Not permanent.
os.environ['GST_PLUGIN_PATH'] = kivy_path+'/gstreamer/lib/gstreamer-0.10'
os.environ['GST_REGISTRY'] = kivy_path+'gstreamer/registry.bin'

kivy_environ_paths = '{kp};{kp}/Python;{kp}/gstreamer/bin;{kp}/MinGW/bin;'
kivy_environ_paths = kivy_environ_paths.format( kp=kivy_path )

os.environ['PATH'] = kivy_environ_paths

# theorecally your environment variables won't be affected outside the
# interpreter. You can still backup your environment variables if you
# don't feel confident

到目前为止,为 python 编写代码功能很好。(我还没用过kivy语言)

当我尝试运行我得到的代码时

Message File Name   Line    Position    
Traceback               
    <module>    C:\Users\USER_NAME\Desktop\python\main.py   12      
    <module>    C:/kivy27/kivy\kivy\app.py  321     
    <module>    C:/kivy27/kivy\kivy\base.py 29      
    <module>    C:/kivy27/kivy\kivy\event.py    8       
ImportError: DLL load failed: %1 is not a valid Win32 application.

但如果我把它放入 BAT 文件中,它运行良好。所以我猜 Pyscripter 设置代码有问题。

这是我正在运行的代码:

from kivy.uix.scatter import Scatter
from kivy.uix.label import Label
from kivy.uix.floatlayout import FloatLayout

class TutorialApp(App):
    def build(self):
        f = FloatLayout()
        s = Scatter()
        l = Label(text='Hello',
                  font_size=150)
        f.add_widget(s)
        s.add_widget(l)
        return f

if __name__ == "__main__":
    TutorialApp().run()

它基本上来自本教程https://www.youtube.com/watch?v=F7UKmK9eQLY

4

0 回答 0