python-magic на android
Я собираю buildozer'ом приложение под андроид, написанное на kivy. В нем мне нужно импортировать библиотеку python-magic, которая может определять MIME тип. При отладке моего приложения через logcat возникает это исключение:
07-05 16:53:56.210 26146 26333 I python : Traceback (most recent call last):
07-05 16:53:56.211 26146 26333 I python : File "/home/user/TestKivyMd/.buildozer/android/app/main.py", line 13, in <module>
07-05 16:53:56.211 26146 26333 I python : File "/home/user/TestKivyMd/.buildozer/android/app/file_manager.py", line 5, in <module>
07-05 16:53:56.211 26146 26333 I python : File "/home/user/TestKivyMd/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/magic.py", line 201, in <module>
07-05 16:53:56.212 26146 26333 I python : ImportError: failed to find libmagic. Check your installation
Это исключение происходит в этом куске кода библиотеки python-magic:
libmagic = None
# Let's try to find magic or magic1
dll = ctypes.util.find_library('magic') \
or ctypes.util.find_library('magic1') \
or ctypes.util.find_library('cygmagic-1') \
or ctypes.util.find_library('libmagic-1') \
or ctypes.util.find_library('msys-magic-1') #for MSYS2
# necessary because find_library returns None if it doesn't find the library
if dll:
libmagic = ctypes.CDLL(dll)
if not libmagic or not libmagic._name:
windows_dlls = ['magic1.dll', 'cygmagic-1.dll', 'libmagic-1.dll', 'msys-magic-1.dll']
platform_to_lib = {'darwin': ['/opt/local/lib/libmagic.dylib',
'/usr/local/lib/libmagic.dylib'] +
# Assumes there will only be one version installed
glob.glob('/usr/local/Cellar/libmagic/*/lib/libmagic.dylib'), # flake8:noqa
'win32': windows_dlls,
'cygwin': windows_dlls,
'linux': ['libmagic.so.1'], # fallback for some Linuxes (e.g. Alpine) where library search does not work # flake8:noqa
}
platform = 'linux' if sys.platform.startswith('linux') else sys.platform
for dll in platform_to_lib.get(platform, []):
try:
libmagic = ctypes.CDLL(dll)
break
except OSError:
pass
if not libmagic or not libmagic._name:
# It is better to raise an ImportError since we are importing magic module
raise ImportError('failed to find libmagic. Check your installation')
На XUbuntu 18.04 все работает отлично, как и на Windows 7. Как можно исправить эту проблему?