python - 无法在安卓手机上部署应用(reportlab 问题)
问题描述
我试图在手机上部署的应用程序在我的台式电脑上运行良好。我使用以下命令将其部署在手机上:
buildozer android debug deploy run
当我尝试在手机上运行应用程序时,它崩溃了。使用:
adb logcat | grep python
我收到以下错误:
ModuleNotFoundError:没有名为“reportlab”的模块
我通过编辑buildozer.spec
文件“解决了”:
# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3,kivy,reportlab
但是,当我再次尝试部署应用程序时,我得到了:
[INFO]: Downloading reportlab
[INFO]: -> running mkdir -p /home/pawel/PycharmPr...(and 82 more)
[INFO]: -> directory context /home/pawel/PycharmProjects/TwoScreens/.buildozer/android/platform/build-armeabi-v7a/packages/reportlab
[INFO]: -> running basename https://bitbucket.org/...(and 40 more)
[INFO]: -> running rm c088826211ca.tar.gz
[INFO]: -> running rm -f .mark-c088826211ca.tar.gz
[INFO]: Downloading reportlab from https://bitbucket.org/rptlab/reportlab/get/c088826211ca.tar.gz
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/pawel/PycharmProjects/TwoScreens/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 1260, in <module>
main()
File "/home/pawel/PycharmProjects/TwoScreens/.buildozer/android/platform/python-for-android/pythonforandroid/entrypoints.py", line 18, in main
ToolchainCL()
File "/home/pawel/PycharmProjects/TwoScreens/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 709, in __init__
getattr(self, command)(args)
File "/home/pawel/PycharmProjects/TwoScreens/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 154, in wrapper_func
build_dist_from_args(ctx, dist, args)
File "/home/pawel/PycharmProjects/TwoScreens/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 216, in build_dist_from_args
args, "ignore_setup_py", False
File "/home/pawel/PycharmProjects/TwoScreens/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 555, in build_recipes
recipe.download_if_necessary()
File "/home/pawel/PycharmProjects/TwoScreens/.buildozer/android/platform/python-for-android/pythonforandroid/recipe.py", line 347, in download_if_necessary
self.download()
File "/home/pawel/PycharmProjects/TwoScreens/.buildozer/android/platform/python-for-android/pythonforandroid/recipe.py", line 393, in download
self.download_file(self.versioned_url, filename)
File "/home/pawel/PycharmProjects/TwoScreens/.buildozer/android/platform/python-for-android/pythonforandroid/recipe.py", line 208, in download_file
urlretrieve(url, target, report_hook)
File "/usr/lib/python3.6/urllib/request.py", line 1826, in retrieve
block = fp.read(bs)
File "/usr/lib/python3.6/tempfile.py", line 624, in func_wrapper
return func(*args, **kwargs)
ValueError: read of closed file
我的理解是buidozer
尝试下载reportlab
并失败。我正在考虑reportlab
手动下载并将其放在适当的文件夹中。无论如何,我不知道该怎么做;我也不确定它是否能解决我的问题。任何帮助/提示将不胜感激。
解决方案
如果您仍然有这个问题,我遇到了完全相同的问题,不幸的是我仍然没有找到更好的方法,所以最后我只是这样做了:
- 转到您安装的位置
reportlab
。就我而言,这是:~/home/samdev/repo/venv/myproject/lib/python3.7/site-packages
。 - 在那里复制文件夹:
reportlab
并reportlab.libs
进入您的根项目文件夹,然后 reportlab
作为 dep in删除buildozer.spec
requirements
。
现在它应该没有问题
推荐阅读
- reactjs - React-Table,每个单元格换一个新行,为什么?
- php - 如何在另一个集合中有一个集合?
- python - 如何放置 PIL.Image.Image 图像 QPushButton(PyQt)
- python - 使用过滤定义关联表上的关系
- mysql - 将 mysql 数据导入 HDFS 时出现异常
- docker - Nginx 反向代理(在 Docker 中)到 Web 应用程序(也在 Docker 中)
- python - 如何在python中查找上个月连续7天的列表
- java - 将图像插入 BYTES 列 - 类型“二进制”不存在
- swift - 如何编写在对象生命周期后期计算的 swift 属性
- python - 多处理在 python 中不起作用。脚本一直在运行,不会停止