首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在kivy发行版中包含PySerial库

在kivy发行版中包含PySerial库
EN

Stack Overflow用户
提问于 2014-08-25 15:34:19
回答 2查看 2.3K关注 0票数 3

我正在研究一个小的python脚本,它将运行在Android上使用kivy。基本上,我是Python编程的新手。这个脚本本身可以在我的Linux下的电脑上运行,但是我不能为android编译PySerial库。我试着用buildozer调试应用程序,但当我打开它时,它在Android上崩溃了。使用python for android构建apk会导致以下错误

代码语言:javascript
复制
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上使用了?

编辑

错误日志:

代码语言:javascript
复制
[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
EN

回答 2

Stack Overflow用户

发布于 2014-08-25 17:20:06

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

代码语言:javascript
复制
# requirements of the app
requirements = pyserial,pycrypto,pyasn1,pyjnius,twisted,kivy

但是,如果库不是纯python,则需要提供一个recipe (如果它还不存在) here,它只是一个简单的脚本,用于向库中添加补丁,以便为arm android编译它。然后将其作为需求添加到bulldozer.spec中。

pyserial看起来像是一个纯python库

票数 1
EN

Stack Overflow用户

发布于 2016-12-02 12:40:01

您已经将pyserial添加到前面提到的需求中,并从黑名单中删除了termios。

在您的buildozer.spec使用中:

代码语言:javascript
复制
# (list) python-for-android whitelist
android.p4a_whitelist = lib-dynload/termios.so

或者为正在使用的引导程序将lib-dynload/termios.so添加到whitelist.txt (请参见https://github.com/kivy/python-for-android/blob/master/pythonforandroid/bootstraps/sdl2/build/whitelist.txt)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25481078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档