无法在android手机上部署应用程序(reportlab问题)

2024-05-28 23:44:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在手机上部署的应用程序在我的桌面PC上运行良好。我使用以下命令在手机上部署了它:

buildozer android debug deploy run

当我尝试在手机上运行应用程序时,它崩溃了。使用:

adb logcat | grep python

我得到了以下错误:

ModuleNotFoundError: No module named '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,并将其放在适当的文件夹中。不管怎样,我不知道该怎么做;我也不确定它是否解决了我的问题。任何帮助/暗示都将不胜感激


Tags: inpyinfohomeforlinefileandroid
1条回答
网友
1楼 · 发布于 2024-05-28 23:44:35

如果你仍然有这个问题,我也有同样的问题,不幸的是,我仍然没有找到更好的方法来解决这个问题。最后,我只是这样做了:

  1. 转到您安装的位置reportlab。在我的例子中,这是:~/home/samdev/repo/venv/myproject/lib/python3.7/site-packages
  2. 在那里,将文件夹:reportlabreportlab.libs复制到根项目文件夹中,然后
  3. buildozer.spec{}中将reportlab作为dep删除

现在应该没问题了

相关问题 更多 >

    热门问题