我正在Win10上使用VSCode开发Kivy应用程序。一切都很顺利。
为了将我的应用程序部署到Android,我想使用只在Linux上运行的buildozer。我已经打开了WSL2并安装了Ubuntu。一切都很顺利。
我在Linux中创建了一个完全独立的部署环境,以补充我的Windows开发环境。我在这两种情况下都使用虚拟环境。一切正常。
当我在Windows环境中运行我的应用程序时,它可以工作。当我在Linux环境中运行它时,它会失败。经过四处查找,我认为问题与开窗有关。Kivy想打开一个窗口,但我的Ubuntu并没有为此设置。
顺便说一句,我对Linux了解不多。
这是代码和信息。
样本代码
from kivy.app import App
from kivy.uix.label import Label
class Play(App):
def build(self):
l = Label(text="Hello World")
return l
if __name__ == '__main__':
Play().run()
错误消息
/usr/bin/env /mnt/c/Users/mark/OneDrive/dev/babyclix_stg/.venv/bin/python /home/mkortink/.vscode-server/extensions/ms-python.python-2020.9.114305/pythonFiles/lib/python/debugpy/launcher 65502 -- /mnt/c/Users/mark/OneDrive/dev/babyclix_stg/hello.py
mkortink@DESKTOP-6FAUQ4D:/mnt/c/Users/mark/OneDrive/dev/babyclix_stg$ /usr/bin/env /mnt/c/Users/mark/OneDrive/dev/babyclix_stg/.venv/bin/python /home/mkortink/.vscode-server/extensions/ms-python.python-2020.9.114305/pythonFiles/lib/python/debugpy/launcher 65502 -- /mnt/c/Users/mark/OneDrive/dev/babyclix_stg/hello.py
source /mnt/c/Users/mark/OneDrive/dev/babyclix_stg/.venv/bin/activate
[INFO ] [Logger ] Record log in /home/mkortink/.kivy/logs/kivy_20-10-16_3.txt
[INFO ] [Kivy ] v1.11.1
[INFO ] [Kivy ] Installed at "/mnt/c/Users/mark/OneDrive/dev/babyclix_stg/.venv/lib/python3.7/site-packages/kivy/__init__.py"
[INFO ] [Python ] v3.7.9 (default, Aug 18 2020, 02:07:21)
[GCC 9.3.0]
[INFO ] [Python ] Interpreter at "/mnt/c/Users/mark/OneDrive/dev/babyclix_stg/.venv/bin/python"
[INFO ] [Factory ] 184 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO ] [Text ] Provider: sdl2
[INFO ] [Window ] Provider: sdl2(['window_egl_rpi'] ignored)
[INFO ] [Window ] Provider: x11(['window_egl_rpi', 'window_sdl2'] ignored)
Couldn't connect to X server
有人能告诉我我需要对Ubuntu做些什么才能让Kivy正常工作吗。或者,我很乐意给Ubuntu一个机会,安装一个更适合初学者的Linux发行版,它更像Windows,并预装了窗口管理器之类的东西。
感谢
有人能告诉我我需要对Ubuntu做什么才能让Kivy工作吗。
您需要安装并设置X服务器。
我不清楚,你为什么真的需要/想这样做?为什么不使用windows进行gui开发,使用Ubuntu环境进行打包呢?
我很高兴能给Ubuntu一个机会,安装一个更适合初学者的Linux发行版,它更像Windows,并预装了窗口管理器等功能。
Ubuntu正是那种对初学者友好的发行版。你没有现成的gui支持的原因是WSL2没有为它设置,而不是Ubuntu做错了什么,尽管我知道WSL2正在朝着有一些内置的wayland支持的方向发展。