Как запустить python скрипт на android
Перейти к содержимому

Как запустить python скрипт на android

  • автор:

Запускаем скрипт. Подробный гайд.

Итак, прежде чем мы начнем настраивать наше устройство для запуска скрипта, я немного расскажу о нем. Скрипт – это небольшая программа, которая состоит из одного или нескольких файлов и не имеет графического интерфейса. Для его запуска нам понадобится устройство с Android, аккаунт Telegram (предварительно вступивший в группы) и немного свободной памяти на устройстве. И раз у нас все это уже есть, тогда поехали!

Для начала нам нужно будет установить приложение Termux из Google Play:

Termuxприложение реализующее Linux-подобную среду взаимодействие с которой происходит посредством консоли.

Теперь нам нужно будет ввести несколько команд прямо в консоль. Открываем Termux!

Копируйте команды прямо отсюда и вставляйте их в консоль. Для того чтобы вставить команду долго нажимайте в любом месте внутри окна консоли и в появившемся всплывающем меню выбираем Paste. Всплывающее меню показано ниже:

После того как вы нажмете Paste скопированная команда вставится и затем нужно будет нажать Enter (на скрине это зеленая стрелочка на клавиатуре). Enter нужно будет нажимать после каждой команды, которую вы вводите. Далее мы это обсуждать не будем.

Вводим команды:

Обращаем внимание на то, что нам выводит консоль после каждого ввода, если мы видим в конце выводимого сообщения [Yes/No] или [y/n] , то вводим в ответ на это Yes или y соответственно.

  • apt update && apt upgrade -y
  • apt install python
  • pip3 install -U telethon —user

Проверим все ли мы установили:

В консоли должны появиться три угловые скобки >>>.

Угловые скобки >>> появятся снова, никаких ошибок не произойдет.

Нажимаем в консоли комбинацию клавиш. Это не команда, вы должны нажать эти клавиши на клавиатуре, а не копировать отсюда. На скрине ниже показана данная комбинация:

Если вы все верно нажали, то на экране вы увидите знак доллара $.

Мы провели предварительную подготовку устройства. Вам не нужно будет проделывать никакие предыдущие шаги перед непосредственным запуском или перезапуском скрипта.

Пара мелочей перед запуском.
  1. Теперь нам нужно зарегистрировать наше приложение в Telegram. Включаем VPN и заходим на официальный сайт Телеграма по ссылке https://my.telegram.org/auth?to=apps . Затем вводим номер телефона (аккаунт, с которого будем делать рассылку). Далее вводим буквенный код, который пришлет Телеграм. Далее переходим в API development tools(если есть). Далее нужно будет заполнить два поля App title и Short name(вы можете написать там любые названия). Далее нажимаем синюю кнопку Create application. Готово! Сохраняем куда-нибудь наши новые api_id и api_hash.
  2. Теперь нам необходимо подготовить рекламное сообщение. Для этого его необходимо разместить в избранном. Обратите внимание на то, что сообщение должно быть последним, так как скрипт будет брать крайнее сообщение из избранного для пересылки.
Запуск, запуск и еще раз запуск!

Сохраните в загрузки смартфона файл со скриптом. Затем откройте файл с помощь termux. В появившемся диалоговом окне нажимаем EDIT, в следующем диалоговом окне нажимаем OK.

Далее открываем termux и вводим команды:

  • ls (смотрим какие папки есть в нашей домашней директории)
  • cd downloads/ (переходим в папку downloads)
  • ls (смотрим появился ли наш файл со скриптом)
  • python script.pyс (мы только что запустили скрипт! Имя файла может отличаться от указанного в этой команде)

Затем вводим все, что запросит скрипт: api_id, api_hash, номер телефона, код, который прислал Телеграм.

Перед тем как наслаждаться рассылкой добавим последний штрих. Опустите шторку смартфона и нажмите кнопку ACQUIRE WAKELOCK. В нажатом состоянии появится надпись (wake lock held). Это будет означать, что рассылка не остановится даже если телефон перейдет в спящий режим. Кнопка ACQUIRE WAKELOCK показана ниже:

Как вы уже поняли, все, что нужно для запуска скрипта – это перейти в нужную папку и запустить скрипт командой «python файл». Если вы хотите остановить работу скрипта, то нажмите сочетание клавиш CTRL + C.

Базовые команды для работы со скриптом в Termux :
  • pwd — показать текущую папку (полный путь)
  • ls — показать содержимое папки
  • cd папка — перейти в папку
  • cd .. — выйти из папки
  • cd ~ — перейти в домашнюю папку
  • mkdir папка — создать папку
  • cp файл папка — скопировать файл в папку
  • mv файл папка — переместить файл в папку
  • mv файл новыйфайл — переименовать файл
  • mv папка новаяпапка— переименовать папку
  • rm файл — удалить файл
  • rm -r папка — удалить папку
  • python script.pyс — запустить скрипт (название файла может отличаться)
  • pidof python — посмотреть все процессы python
  • killall -9 python — убить все процессы python
  • exit — закрыть сессию Termux
Распространенные ошибки:

Что делать, если при открытии файла «с помощью» в меню не появляется приложение Termux?

  1. Сохраните файл в загрузки смартфона.
  2. Откройте Termux и введите следующие команды:
  • termux-setup-storage
  • cp ~/storage/downloads/script.pyc ~/ (В этой команде жирным шрифтом выделено имя файла, если оно отличается от вашего, следует вписать нужное название)

Если вы загрузили файл скрипта в термукс выше описанным способом, то вам не нужно переходить в папку downloads перед его запуском.

Купить скрипт можно в Soft Shop

как запустить python скрипт с данными текстового файла, созданного Android приложенем, написанного на kotlin

у меня есть приложение и, допустим, парсер на python пользователь вводит, например, название книги. приложение сохраняет название в текстовый файл input.txt Как запустить python скрипт, чтобы она сразу начал обрабатывать этот текстовый файл, а результат записал в result.txt, и приложение сразу же отобразило этот результат пользователю? Если вы знаете, как можно прийти к этому результату проще, буду рад узнать об этом(можно просто дать ссылку на статью(англ или русский языки)) но по возможности хотелось бы избежать использования БД или лок.серверов

Отслеживать

задан 1 янв 2022 в 9:34

93 5 5 бронзовых знаков

передавать данные через файлы — костыль. можете апи на питоне написать

1 янв 2022 в 10:22

А что там на питоне такого, что нельзя внедрить а Андроид-приложение и избежать этого обмена файлами?

1 янв 2022 в 22:51

0

Сортировка: Сброс на вариант по умолчанию

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

  • python
  • kotlin

Как запустить python скрипт на android

QPython — Python for Android
Версия: 3.0.1

Последнее обновление программы в шапке: 08.09.2022

Прикрепленное изображение

Прикрепленное изображение

Краткое описание:
Создание, редактирование и запуск .py файлов.
Описание:

Очень хороший Python на Android.

QPython is a script engine running on android devices like phone or tablet, It embeds the Python interpreter, console, editor, SL4A Library for Android, which can make your android device run Python script or project. It is the Python on Android.
In addition, It offer the develop kit which can let you develop Python project on your android device easily.

Возможности:
— Поддержка собственного программного пользовательского интерфейса, который позволит вам программировать игры
— Поддержка SL4A программирования, может получить доступ к функциям Android, такие как сети, Bluetooth, местоположение
— Поддержка многих Python библиотек
— Поддержка FTP-серверов, которые могут позволить вам передать проект Python с компьютера на мобильник легко и просто.

Русский интерфейс: Нет
Требуется Android: 4.0 и выше

Полноценное Python приложение на Android

В этой статье я хотел бы рассказать о том, как создать полноценное приложение на Python для Android. Нет, это не очередной мануал для создания скрипта для sl4a, это мануал по созданию полноценного приложения с UI, возможностью собрать apk и выложить на Android Market. Заодно я хотел бы похвалиться своим первым приложением на google.play, это не hello world, а полезное приложение для фотографов, хотя и узко специализированное.

Начну рассказ пожалуй с самого приложения и завершу рассказам о том как оно делалось.

isortViewer

Мне как фотографу приходится тратить много времени на сортировку и отбор фотографий. Не всегда хочется сидеть за рабочим компьютером, когда под рукой есть ноутбук, смартфон или планшет, но копировать туда десятки гигабайт raw или jpeg файлов, а потом синхронизировать с рабочим компьютером — сомнительное удовольствие. Именно поэтому я создал программы isortManager и isortViewer, которые значительно облегчили мне работу по сортировке и отбору фотографий. Теперь заниматься отбором и сортировкой фотографий я могу лежа на пляже диване или скучая в пробке 🙂

Копипаст описания и пара скриншотов:
isortViewer — программа для фотографов, которая позволяет легко и быстрой отбирать и сортировать тысячи фотографий (raw или jpg) с фотосессий на ваших android смартфонах и планшетах. При этом, нет необходимости копировать десятки гигабайт jpg или raw файлов на устройство. Просто воспользуйтесь бесплатной программой isortManager для компьютера, которая сохранит все в один небольшой файл проекта:
1. Скачайте и запустите isortManager с официального сайта;
2. Создайте проект и добавьте папки с фотографиями. Поддерживаются форматы: jpg и raw (cr2, nef, orf и т.д.). В итоге у вас получится небольшой файл проекта (примерно 150 мб на несколько тысяч фотографий, будь то jpg или raw формат);
3. Скопируйте на ваше android устройство файл проекта, откройте в isortViewer. Вы можете помечать фотографии «на удаление», а так же, ставить рейтинги от 1 до 5 звезд;
4. После этого, скопируйте файл проекта обратно и примените изменения в isortManager. Кроме удаления выбранных фотографий, вы можете копировать или перемещать отмеченные фотографии. Например, фотографии с «5 звезд» можно скопировать в папку «шедевры», а «1 звезда» переместить в папку «хлам».

Приложение абсолютно бесплатно и доступно на google.play, однако донейты приветствуются.

Исходники доступны на официальном сайте!

Как это делалось

Так как python лучший язык программирования в мире кроме python я ничего не знаю, решено было написать приложение на python.

isortManager

С isortManager для PC проблем не возникло, создание GUI сборки под windows уже давно обкатано и работает он очень просто: с помощью dcraw выдирает jpg превьюшки из raw файлов, ресайзит из с помощью PIL и складывает в один файл с достаточно простой структурой. Был изобретен свой весолипед с контейнером для хранения фотографий и метаданных (полный путь к фотографии, отметка «на удаление» и отметка рейтинга), так как, например, zip или tar формат, не могут изменять один файл в архиве (метаданные), требую перепаковки всех файлов. Файлы просто пишутся один за другим подряд и в блоке метаданных (обычный repr питоновского словаря) в конце сохраняется смещения начала файлов, плюс в конце файла пишется размер блока метаданных. GUI написано на Tkinter (люблю я его за быстроту написания и за малый размер итоговой сборки), вот собственно скриншот:

И да, все это работает и на linux, и даже быстрее чем на windows )

isortViewer для android

Всего я нашел два способа заставить python приложение работать как полноценное приложение на android, это pygame for android и проект kivy.
Pygame — более низкоуровневый, все UI пришлось бы рисовать вручную, что отняло бы много времени, поэтому был выбран фреймворк kivy. Итак:

Kivy

Это замечательный фрейморк для написания приложение для windows, linux, MacOS, android и iOS. Поддерживается мультитач, UI рисутется через OpenGL, значит должно работать аппаратное ускорение. Увидеть работу виджетов можно установив демонстрационное приложение Kivy Showcase. Есть возможность использования некоторых платформо специфичных функций, например, вибро или акселерометр, с помощью модуля android.

Для разработки я бы рекомендовал использовать linux, тем более, apk собираются именно в этой OS.

Hello World выглядит так:

import kivy kivy.require('1.0.6') # replace with your current kivy version ! from kivy.app import App from kivy.uix.button import Button class MyApp(App): def build(self): return Button(text='Hello World') if __name__ == '__main__': MyApp().run()

Причем этот код будет работать на всех заявленных платформах. Пропадает необходимость в тестировании приложения в эмуляторе. Достаточно запустить скрипт на исполнение в своей любимой IDE и увидеть результат на экране компьютера, без задержек на компиляцию, запуск эмулятора и пр. Если вы все же хотите увидеть как это будет выглядеть непосредственно на устройстве, просто установите Kivy Launcher, скопируйте файлы проекта на карту памяти и запустите. Дебажить при этом можно при помощи adb logcat.
Если вы используете библиотеку android, которой нет на PC, но хочется запускать приложение не только на android, воспользуйте такой конструкцией:

try: import android except ImportError: android=None . if android: android.vibrate(0.05) 

Сборка apk достаточно проста и описана на этой странице. После сборки релиза, достаточно подписать свое приложение (я использовал этот мануал) и выложить в google play.

  • Быстрая разработка под различные платформы, практически без доработки кода.
  • Доступен широкий выбор виджетов
  • Высокая скорость работы. Весь ресурсоемкий вынесен в С модули. Сам интерпретатор python на android работает нативно.
  • Фремворк включает в себя множество инструментов, например анимация, кеширование и пр.
  • upd: Доступ к камере, буферу обмена, микрофону. Написать свой видеоплеер можно буквально за 20 строк.
  • Большой размер apk файла. Проект с 300 кб ресурсов (скрипты, графика) собирается в 7 мб apk. Хотя, думаю, есть возможность это как то оптимизировать.
  • Невозможность (пока), восстанавливать работу после сворачивания — приложение закрывается

В следующей своей статье, я расскажу более подробно о процессе написания приложения «с нуля», расжевывая каждую строчку кода.

Хотелось бы сразу пресечь холивары на тему «для android только java, python не нужен». Я считаю, не важно, какие технологии «под капотом», главное чтоб приложение было качественным.
Сфера применения kivy может быть огромной. Сейчас на моем счету несколько приложений, написанных под заказ, где python с фремворком kivy показал себя с хорошей стороны. Например, ровно за один час, было написано приложение, для сети сервисных центров. Приложение работает в режиме киоска и установлено на дешевые китайские планшеты, которые висят в холле. Клиент набирает номер заказа, далее по WiFi планшет соединяется с сервером и сообщает статус заказа.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *