random_forest_fanatic random_forest_fanatic - 10 days ago 6
Python Question

buildozer fails with pure python library (pint)

I'm trying to create a kivy application, and I'd like to include the

pint
library so I added
pint
to my
buildozer.spec
file:

requirements = kivy, hostpython2, pint


However, when running

buildozer android_new debug deploy


I get an error (see the log below). Everything works fine if I remove
pint
from the requirements, but I don't understand why this would cause errors since
pint
is a pure python module with no dependencies.

I don't understand the errors in the log file, but I did see that
ImportError: cannot import name HTTPSHandler
so I tried including HTTPSHandler in the requirements as well, but that didn't fix anything.

[INFO]: # Installing pure Python modules
[INFO]: The requirements (pint) don't have recipes, attempting to install them with pip
[INFO]: If this fails, it may mean that the module has compiled components and needs a recipe.
[INFO]: -> directory context /Users/me/Personal/grocery/.buildozer/android/platform/build/build
[INFO]: -> running virtualenv --python=python2.7 venv
('name is', None, <class 'pythonforandroid.recipes.six.SixRecipe'>)
('name is', 'jnius', <class 'pythonforandroid.recipes.pyjnius.PyjniusRecipe'>)
('name is', None, <class 'pythonforandroid.recipes.kivy.KivyRecipe'>)
('path is', '/Users/me/.buildozer/android/platform/android-ndk-r9c/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86/bin/:/Users/me/.buildozer/android/platform/android-ndk-r9c/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/:/Users/me/.buildozer/android/platform/android-ndk-r9c:/Users/me/.buildozer/android/platform/android-sdk-20/tools:/Users/me/.buildozer/android/platform/apache-ant-1.9.4/bin:/Users/me/anaconda/envs/grocery/bin:/Users/me/Downloads/google-cloud-sdk/bin:/Users/me/instantclient_11_2:/Users/me/anaconda/bin:/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/Application/sDocker.app/Contents/Resources/bin')
objs_paths are ['/Users/me/Personal/grocery/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python2/collated_objects']
Copying libraries
Traceback (most recent call last):
File "/Users/me/anaconda/envs/grocery/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/Users/me/anaconda/envs/grocery/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/Users/me/Personal/grocery/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 837, in <module>
main()
File "/Users/me/Personal/grocery/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 834, in main
ToolchainCL()
File "/Users/me/Personal/grocery/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 489, in __init__
getattr(self, args.subparser_name.replace('-', '_'))(args)
File "/Users/me/Personal/grocery/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 147, in wrapper_func
build_dist_from_args(ctx, dist, args)
File "/Users/me/Personal/grocery/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 190, in build_dist_from_args
build_recipes(build_order, python_modules, ctx)
File "pythonforandroid/build.py", line 582, in build_recipes
File "pythonforandroid/build.py", line 601, in run_pymodules_install
File "pythonforandroid/logger.py", line 173, in shprint
File "/Users/me/anaconda/envs/grocery/lib/python2.7/site-packages/sh.py", line 565, in next
self.wait()
File "/Users/me/anaconda/envs/grocery/lib/python2.7/site-packages/sh.py", line 500, in wait
self.handle_command_exit_code(exit_code)
File "/Users/me/anaconda/envs/grocery/lib/python2.7/site-packages/sh.py", line 516, in handle_command_exit_code
raise exc(self.ran, self.process.stdout, self.process.stderr)
sh.ErrorReturnCode_1:

RAN: '/Users/me/anaconda/bin/virtualenv --python=python2.7 venv'

STDOUT:
Running virtualenv with interpreter /Users/me/anaconda/envs/grocery/bin/python2.7
New python executable in /Users/me/Personal/grocery/.buildozer/android/platform/build/build/venv/bin/python2.7
Not overwriting existing python script /Users/me/Personal/grocery/.buildozer/android/platform/build/build/venv/bin/python (you must use /Users/me/Personal/grocery/.buildozer/android/platform/build/build/venv/bin/python2.7)
Installing setuptools, pip, wheel...
Complete output from command /Users/joshuabrownin...d/venv/bin/python2.7 - setuptools pip wheel:
Traceback (most recent call last):
File "<stdin>", line 7, in <module>
File "/Users/me/anaconda/lib/python2.7/site-packages/virtualenv-15.0.3-py2.7.egg/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl/pip/__init__.py", line 16, in <module>
File "/Users/me/anaconda/lib/python2.7/site-packages/virtualenv-15.0.3-py2.7.egg/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl/pip/vcs/subversion.py", line 9, in <module>
File "/Users/me/anaconda/lib/python2.7/site-packages/virtualenv-15.0.3-py2.7.egg/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl/pip/index.py", line 30, in <module>
File "/Users/me/anaconda/lib/python2.7/site-packages/virtualenv-15.0.3-py2.7.egg/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl/pip/wheel.py", line 39, in <module>
File "/Users/me/anaconda/lib/python2.7/site-packages/virtualenv-15.0.3-py2.7.egg/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl/pip/_vendor/distlib/scripts.py", line 14, in <module>
File "/Users/me/anaconda/lib/python2.7/site-packages/virtualenv-15.0.3-py2.7.egg/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl/pip/_vendor/distlib/compat.py", line 31, in <module>
ImportError: cannot import name HTTPSHandler
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
File "/Users/me/anaconda/lib/python2.7/site-packages/virtualenv-15.0.3-py2.7.egg/virtualenv.py", line 2327, in <module>
main()
File "/Users/me/anaconda/lib/python2.7/site-packages/virtualenv-15.0.3-py2.7.egg/virtualenv.py", line 711, in main
symlink=options.symlink)
File "/Users/me/anaconda/lib/python2.7/site-packages/virtualenv-15.0.3-py2.7.egg/virtualenv.py", line 944, in create_environment
download=download,
File "/Users/me/anaconda/lib/python2.7/site-packages/virtualenv-15.0.3-py2.7.egg/virtualenv.py", line 900, in install_wheel
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
File "/Users/me/anaconda/lib/python2.7/site-packages/virtualenv-15.0.3-py2.7.egg/virtualenv.py", line 795, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command /Users/joshuabrownin...d/venv/bin/python2.7 - setuptools pip wheel failed with error code 1


STDERR:

# Command failed: python -m pythonforandroid.toolchain create --dist_name=easierGroceries --bootstrap=sdl2 --requirements=kivy,pint,hostpython2 --arch armeabi-v7a --copy-libs --local-recipes /Users/me/Personal/groecery/.buildozer/android/platform/python-for-android/recipes --color=always --storage-dir=/Users/me/Personal/grocery/.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

Answer

It seems like the error was caused by using a conda environment. When I used the default python installation (on my Mac OSX) the problem was resolved.