Ошибка сборки hostpython2 (для Android с использованием Kivy) - PullRequest
0 голосов
/ 21 января 2019

Я получил следующую ошибку

[INFO]:    # Building recipes
[INFO]:    Building hostpython2 for armeabi-v7a
[INFO]:    -> directory context /home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2
[INFO]:    -> directory context /home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/native-build
[INFO]:    <- directory context /home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2
[INFO]:    -> running cp Modules/Setup.dist /home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/native-build/Modules/Setup
[INFO]:    -> running make -C /home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/native-build
Exception in thread background thread for pid 23429:                                                                                                                                                       
Traceback (most recent call last):
  File "/home/peter/Conda/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/peter/Conda/lib/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "/home/peter/Conda/lib/python3.6/site-packages/sh.py", line 1540, in wrap
    fn(*args, **kwargs)
  File "/home/peter/Conda/lib/python3.6/site-packages/sh.py", line 2459, in background_thread
    handle_exit_code(exit_code)
  File "/home/peter/Conda/lib/python3.6/site-packages/sh.py", line 2157, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/home/peter/Conda/lib/python3.6/site-packages/sh.py", line 815, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_2: 

  RAN: /usr/bin/make -C /home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/native-build

  STDOUT:
make: Entering directory '/home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/native-build'
/bin/sh /home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/Modules/makesetup -c /home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/Modules/config.c.in \
            -s Modules \
            Modules/Setup.config \
            Modules/Setup.local \
            Modules/Setup
The Makefile was updated, you may need to re-run make.
gcc -pthread -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes   Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o Parser/parser.o Parser/parsetok.o Parser/bitset.o Parser/metagrammar.o Parser/firstsets.o Parser/grammar.o Parser/pgen.o Objects/obmalloc.o Python/mysnprintf.o Python/pyctype.o Parser/tokenizer_pgen.o Parser/printgrammar.o Parser/pgenmain.o -lpthread -ldl  -lutil -o Parser/pgen
gcc: error: Parser/tokenizer_pgen.o: No such file or directory
gcc: error: Parser/printgrammar.o: No such file or directory
gcc: error: Parser/pgenmain.o: No such file or directory
Makefile:566: recipe for target 'Parser/pgen' failed
make: *** [Parser/pgen] Error 1
make: Leaving directory '/home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/native-build'


  STDERR:


Traceback (most recent call last):
  File "/home/peter/Conda/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/peter/Conda/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/peter/Documents/testapp/app/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 1039, in <module>
    main()
  File "/home/peter/Documents/testapp/app/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 1033, in main
    ToolchainCL()
  File "/home/peter/Documents/testapp/app/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 553, in __init__
    getattr(self, args.subparser_name.replace('-', '_'))(args)
  File "/home/peter/Documents/testapp/app/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 150, in wrapper_func
    build_dist_from_args(ctx, dist, args)
  File "/home/peter/Documents/testapp/app/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 191, in build_dist_from_args
    build_recipes(build_order, python_modules, ctx)
  File "/home/peter/Documents/testapp/app/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/build.py", line 634, in build_recipes
    recipe.build_arch(arch)
  File "/home/peter/Documents/testapp/app/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/python.py", line 382, in build_arch
    result = shprint(sh.make, '-C', build_dir)
  File "/home/peter/Documents/testapp/app/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/logger.py", line 178, in shprint
    for line in output:
  File "/home/peter/Conda/lib/python3.6/site-packages/sh.py", line 863, in next
    self.wait()
  File "/home/peter/Conda/lib/python3.6/site-packages/sh.py", line 792, in wait
    self.handle_command_exit_code(exit_code)
  File "/home/peter/Conda/lib/python3.6/site-packages/sh.py", line 815, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_2: 

  RAN: /usr/bin/make -C /home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/native-build

  STDOUT:
make: Entering directory '/home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/native-build'
/bin/sh /home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/Modules/makesetup -c /home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/Modules/config.c.in \
            -s Modules \
            Modules/Setup.config \
            Modules/Setup.local \
            Modules/Setup
The Makefile was updated, you may need to re-run make.
gcc -pthread -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes   Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o Parser/parser.o Parser/parsetok.o Parser/bitset.o Parser/metagrammar.o Parser/firstsets.o Parser/grammar.o Parser/pgen.o Objects/obmalloc.o Python/mysnprintf.o Python/pyctype.o Parser/tokenizer_pgen.o Parser/printgrammar.o Parser/pgenmain.o -lpthread -ldl  -lutil -o Parser/pgen
gcc: error: Parser/tokenizer_pgen.o: No such file or directory
gcc: error: Parser/printgrammar.o: No such file or directory
gcc: error: Parser/pgenmain.o: No such file or directory
Makefile:566: recipe for target 'Parser/pgen' failed
make: *** [Parser/pgen] Error 1
make: Leaving directory '/home/peter/Documents/testapp/app/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/native-build'


  STDERR:

# Command failed: /home/peter/Conda/bin/python -m pythonforandroid.toolchain create --dist_name=kivy_hello_world --bootstrap=sdl2 --requirements=kivy,numpy --ndk-api 9 --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/peter/Documents/testapp/app/.buildozer/android/platform/build"
# 
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2

Я погуглил ее и обнаружил, что это может быть результатом остатков от старых попыток компиляции.Вот почему я использовал

buildozer distclean

, чтобы избавиться от старых данных компиляции.К сожалению, это ничего не изменило, и ошибка остается.Мои единственные требования - это Kivy и NumPy во время сборки - оба перечислены в моем файле .spec.Очевидно, что процесс должен установить соответственно сборку hostpython2, что приводит к ошибке, показанной выше.

Сборка Kivy не должна быть проблемой, но NumPy может быть ... Я использовал «официальный» рецепт из репозитория buildozer.Я пытался установить pgen через pip, но я не знал, что я делаю - это была просто попытка.

Целевая платформа - Android.

1 Ответ

0 голосов
/ 21 января 2019

Ни buildozer distclean, ни buildozer clean не работали, поэтому я удалил и каталог ~ / .buildozer, и каталог ./.buildozer. Это решило проблему.

...