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

问题描述

我正在尝试使用 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",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",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",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,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','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

我希望得到任何建议或帮助以了解我可以做些什么来解决这个问题。
谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)