AttributeError:'zipimporter'对象在buildozer中没有属性'exec_module'

2024-09-28 22:30:53 发布

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

我试图用buildozer在Python3中为交易目的创建一个apk,但当我在我的设备上打开apk时,它关闭,buildozer android logcat显示以下代码:

error:
Traceback (most recent call last):
04-04 13:15:27.083 19371 19409 I python  :    File "/home/casbot/Documentos/App/.buildozer/android/app/main.py", line 9, in <module>
04-04 13:15:27.083 19371 19409 I python  :    File "/home/casbot/Documentos/App/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/casbotapp/binance/client.py", line 8, in <module>
04-04 13:15:27.083 19371 19409 I python  :    File "/home/casbot/Documentos/App/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/casbotapp/binance/helpers.py", line 3, in <module>
04-04 13:15:27.083 19371 19409 I python  :    File "/home/casbot/Documentos/App/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/casbotapp/dateparser/__init__.py", line 3, in <module>
04-04 13:15:27.084 19371 19409 I python  :    File "/home/casbot/Documentos/App/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/casbotapp/dateparser/date.py", line 9, in <module>
04-04 13:15:27.084 19371 19409 I python  :    File "/home/casbot/Documentos/App/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/casbotapp/dateparser/date_parser.py", line 5, in <module>
04-04 13:15:27.084 19371 19409 I python  :    File "/home/casbot/Documentos/App/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/casbotapp/dateparser/conf.py", line 5, in <module>
04-04 13:15:27.084 19371 19409 I python  :    File "/home/casbot/Documentos/App/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/casbotapp/dateparser/parser.py", line 12, in <module>
04-04 13:15:27.084 19371 19409 I python  :    File "/home/casbot/Documentos/App/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/casbotapp/dateparser/utils/strptime.py", line 57, in <module>
04-04 13:15:27.084 19371 19409 I python  :    File "/home/casbot/Documentos/App/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/casbotapp/dateparser/utils/strptime.py", line 28, in patch_strptime
04-04 13:15:27.085 19371 19409 I python  :  AttributeError: 'zipimporter' object has no attribute 'exec_module'
04-04 13:15:27.085 19371 19409 I python  : Python for android ended.

在AttributeError行之前,错误引用的文件代码如下:

import sys                                                                                       
import importlib.util
import regex as re

from datetime import datetime

TIME_MATCHER = re.compile(
    r'.*?'
    r'(?P<hour>2[0-3]|[0-1]\d|\d):'
    r'(?P<minute>[0-5]\d|\d):'
    r'(?P<second>6[0-1]|[0-5]\d|\d)'
    r'\.(?P<microsecond>[0-9]{1,6})'
)

MS_SEARCHER = re.compile(r'\.(?P<microsecond>[0-9]{1,6})')


def patch_strptime():
    """Monkey patching _strptime to avoid problems related with non-english
    locale changes on the system.

    For example, if system's locale is set to fr_FR. Parser won't recognize
    any date since all languages are translated to english dates.
    """
    _strptime_spec = importlib.util.find_spec('_strptime')

    _strptime = importlib.util.module_from_spec(_strptime_spec)
    _strptime_spec.loader.exec_module(_strptime)
    sys.modules['strptime_patched'] = _strptime

    _calendar = importlib.util.module_from_spec(_strptime_spec)
    _strptime_spec.loader.exec_module(_calendar)
    sys.modules['calendar_patched'] = _calendar

    _strptime._getlang = lambda: ('en_US', 'UTF-8')
    _strptime.calendar = _calendar
    _strptime.calendar.day_abbr = [
        'mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'
    ]
    _strptime.calendar.day_name = [
        'monday', 'tuesday', 'wednesday', 'thursday',
        'friday', 'saturday', 'sunday'
    ]
    _strptime.calendar.month_abbr = [
        '', 'jan', 'feb', 'mar', 'apr', 'may', 'jun',
        'jul', 'aug', 'sep', 'oct', 'nov', 'dec'
    ]
    _strptime.calendar.month_name = [
        '', 'january', 'february', 'march', 'april',
        'may', 'june', 'july', 'august', 'september',
        'october', 'november', 'december'
    ]

    return _strptime._strptime_time


__strptime = patch_strptime()


def strptime(date_string, format):
    obj = datetime(*__strptime(date_string, format)[:-3])

    if '%f' in format:
        try:
            match_groups = TIME_MATCHER.match(date_string).groupdict()
            ms = match_groups['microsecond']
            ms = ms + ((6 - len(ms)) * '0')
            obj = obj.replace(microsecond=int(ms))
        except AttributeError:
            match_groups = MS_SEARCHER.search(date_string).groupdict()
            ms = match_groups['microsecond']
            ms = ms + ((6 - len(ms)) * '0')
            obj = obj.replace(microsecond=int(ms))

    return obj

如果您能提供任何建议或帮助我了解如何解决此问题,我将不胜感激。
谢谢


Tags: inpybuildapphomelinecalendarfile