在kivy发行版中包含PySerial库

时间:2014-08-25 07:34:19

标签: android python serial-port kivy pyserial

我正在开发一个小型python脚本,它将使用kivy在Android上运行。基本上我是Python编程的新手。 脚本本身在Linux下的我的计算机上运行,​​但我无法为Android编译PySerial库。 我尝试使用buildozer来调试应用程序,但是当我打开它时它会在Android上崩溃。 用python为android构建apk让我得到以下错误

Run pymodules install
We want to install: serial
Check if and /usr/bin/pip2 are present
Check if virtualenv is existing
Installing virtualenv
./distribute.sh: line 119: --python=python2.7: command not found

是否有一种方法可以包含串行库,以便在Android上使用?

修改

错误日志:

[INFO              ] Logger: Record log in /data/data/org.led.serialled/files/.kivy/logs/kivy_14-08-25_10.txt
[INFO              ] Kivy v1.8.0
[INFO              ] Factory: 157 symbols loaded
[DEBUG             ] Cache: register <kv.lang> with limit=None, timeout=Nones
[DEBUG             ] Cache: register <kv.image> with limit=None, timeout=60s
[DEBUG             ] Cache: register <kv.atlas> with limit=None, timeout=Nones
[WARNING           ] stderr: /data/data/org.led.serialled/files/lib/python2.7/site-packages/kivy/core/image/img_pygame.py:12: RuntimeWarning: import cdrom: No module named cdrom
[WARNING           ] stderr: (ImportError: No module named cdrom)
[INFO              ] Image: Providers: img_tex, img_dds, img_pygame, img_gif (img_pil ignored)
[DEBUG             ] Cache: register <kv.texture> with limit=1000, timeout=60s
[DEBUG             ] Cache: register <kv.shader> with limit=1000, timeout=3600s
[WARNING           ] stderr: Traceback (most recent call last):
[WARNING           ] stderr:   File "/home/konstantin/Desktop/buildozer_LED/.buildozer/android/app/main.py", line 3, in <module>
[WARNING           ] stderr:   File "/home/konstantin/Desktop/buildozer_LED/.buildozer/android/app/_applibs/serial/__init__.py", line 21, in <module>
[WARNING           ] stderr:   File "/home/konstantin/Desktop/buildozer_LED/.buildozer/android/app/_applibs/serial/serialposix.py", line 15, in <module>
[WARNING           ] stderr: ImportError: No module named termios

2 个答案:

答案 0 :(得分:1)

这代表任何库,如果它是一个纯python库或已知recipe,那么只需将它添加到bulldozer.spec的需求部分。

# requirements of the app
requirements = pyserial,pycrypto,pyasn1,pyjnius,twisted,kivy

但是如果lib不是纯python,你需要提供一个recipe如果它还不存在here这只是一个简单的脚本,它会向lib添加补丁以便为它编译它机器人。然后将其作为要求添加到bulldozer.spec。

pyserial看起来像是一个纯粹的python lib

答案 1 :(得分:0)

您已按要求添加buildozer.spec并从黑名单中删除了termios。

# (list) python-for-android whitelist android.p4a_whitelist = lib-dynload/termios.so 使用中:

lib-dynload/termios.so

或将max_instances添加到whitelist.txt以获取正在使用的引导程序(请参阅    https://github.com/kivy/python-for-android/blob/master/pythonforandroid/bootstraps/sdl2/build/whitelist.txt