Запуск hello.py из Android-процесса

Я пытаюсь запустить скрипт python hello.py из процесса Android.

Вот шаги, которые я выполнил:

  1. Я приобрел бинарные файлы python и нуждаюсь в связанных библиотеках.
  2. Я тестировал их, и они работают в эмуляторе терминала.
  3. Я добавил их в свою папку с ресурсами и скопировал их в частное хранилище и сделал их исполняемыми.

Но все же я получаю следующую ошибку:

 07-19 13:35:15.391 26991-26991/com.vibhinna.example I/System.out: Here is the standard output of the command: 07-19 13:35:32.001 26991-26991/com.vibhinna.example I/System.out: Here is the standard error of the command (if any): 07-19 13:35:32.001 26991-26991/com.vibhinna.example I/System.out: Fatal Python error: Py_Initialize: Unable to get the locale encoding 07-19 13:35:32.001 26991-26991/com.vibhinna.example I/System.out: ImportError: No module named 'encodings' 07-19 13:35:32.001 26991-26991/com.vibhinna.example I/System.out: Current thread 0xb6f0dec8 (most recent call first): 

Вот код, используемый для выполнения файла.

  String pyPath = getFilesDir().getAbsolutePath() + "/usr/bin/python"; String helloPath = getFilesDir().getAbsolutePath() + "/usr/bin/hello.py"; ProcessBuilder pb = new ProcessBuilder(pyPath, helloPath); Process proc = pb.start(); BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream())); BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream())); // read the output from the command System.out.println("Here is the standard output of the command:\n"); String s = null; while ((s = stdInput.readLine()) != null) { System.out.println(s); } // read any errors from the attempted command System.out.println("Here is the standard error of the command (if any):\n"); while ((s = stdError.readLine()) != null) { System.out.println(s); } 

Что я делаю не так? Как мне заставить это работать?

Это был чистый идиотизм. После нескольких дней вытягивания волос я наконец узнал, что пошло не так. Я не копировал папку /usr/lib/python3.5 в соответствующую папку данных Android.

Эта ссылка была чрезвычайно полезна – как python находит пакеты?

Intereting Posts
Кнопка «Назад» в действии не работает в android Извлекает ли Proguard комментарии из источника Java BaseExpandableListAdapter вызывает getgroupview (), когда я редактирую данные в EditText Как правильно спроектировать / настроить Android-навигатор Java.io.FileNotFoundException: /storage/emulated/0/saved_images/grub.jpg: open failed: ENOENT (Нет такого файла или каталога) ArrayList автоматически добавляет нулевые элементы Повторное использование HttpURLConnection для сохранения сеанса Android – обновить базу данных в приложении из Интернета Как вызвать метод в действии с помощью службы Передача ссылки на активность в утилиту класса android Метод onClick не называется Android Когда Fragment заменяется и помещается в задний стек (или удаляется), он остается в памяти? В режиме отладки Android USB я могу сделать клавиатуру компьютера в качестве устройства ввода для своего мобильного телефона во время отладки USB? Можно ли показывать цифровые тексты в TextView в Android? Подсоединение аудио (аудио отпечатки пальцев)