Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 29, 2016 10:35:17

Soy
Зарегистрирован: 2016-03-15
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Android 4.2.2 + QPython 3

Предисловие.
Я написал проект для личных нужд и хотел его внедрить на своей работе. Мелочь, конечно, но приятно - своими руками сделано. Однако, отдел ИТ-безопасности сначала не понял, что вообще такое Питон, а когда выяснил, то сказал, что это разработка и вообще опасно. Ставить отказался. Что ж ладно, пусть это будет на их совести. Но и мы не пальцем деланы.

Решил я интерфейс своего приложения перенести с tk на вэб-интерфейс.
Принцип прост. Есть смартфон с QPython 3 (3.2). На нем крутится простой http-серверок и выполняются скрипты Питона. Пользователи подключаются к нему через браузер и работают. Сервер я проверил-работает. Хром отлично открывает стартовую страничку, ходит по ссылкам. НО, скрипты выполнить не получается. При нажатии на ссылку со скриптом, появляется в логе сервера такая ошибочка:


Traceback (most recent call last):
File “/data/data/com.hipipal.qpy3/files/lib/python3.2.zip/http/server.py” line 1113, in run_cgi
os.execve(scriptfile, args, env)
OSError: Permission denied
localhost - - CGI script exit status 0x7f00
Рабочая папка со скриптом лежит на карте памяти (/mnt/sdcard/1python/html/cgi-bin/).
Тут я понимаю, что скорее всего вопрос упирается в Андроид или ядро Линукс. Скриптам, которые хранятся на карте памяти, отформатированной в FAT/NTFS, мы не можем поставить аттрибут “Executable” и прописать нужный chmod.
Скопировать в корневую папку смартфона нельзя, там очень мало места.
Будет ли скрипт работать, если часть карты памяти отформатировать в “ext” и прописать ему нужные разрешения?
Или может быть есть иной способ запуска скрипта?

Офлайн

#2 Апрель 29, 2016 11:20:40

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Android 4.2.2 + QPython 3

Самый правильный и простой метод карту в EXT и примаунтить.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Май 4, 2016 21:40:20

Soy
Зарегистрирован: 2016-03-15
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Android 4.2.2 + QPython 3

Итак, раздобыл флешку, форматнул в ехт2, примонтировал, но не могу создать среду исполнения ру-скриптов.
Имеем:
- Samsung Galaxy Note (GT-N7000), оригинальная прошивка 4.1.2 с рут-доступом
- MicroSD 128 MB ext2 (да-да, 128 мегабайт)
- Терминал
- BusyBox
- QPython 3 (python 3.2)
- Python 3 for android (так и не разобрался, как им пользоваться)
Чтобы питон запускался из любого места в терминале, перекинул содержимое папки
/data/data/com.hipipal.qpy3/files/bin
end.sh, init.sh, pip, python, qpython.sh в папку бюзибокса
/system/xbin/
Но ничего путного не получилось. Питон не может найти свои библиотеки и не запускается.
Однако, если запустить qpython.sh, все работает отлично
qpython.sh:

#!/system/bin/sh
DIR=${0%/*}
. $DIR/init.sh && $DIR/python "$@" && $DIR/end.sh
он обращается к init.sh и end.sh
init.sh:
#!/system/bin/sh
export TERM=screen
export PATH=/data/data/com.hipipal.qpy3/files/binsbinsystem/binsystem/xbin
export LD_LIBRARY_PATH=.data/data/com.hipipal.qpy3/files/lib/data/data/com.hipipal.qpy3/files/data/data/com.hipipal.qpy3/lib/
export PYTHONHOME=/data/data/com.hipipal.qpy3/files
export ANDROID_PRIVATE=/data/data/com.hipipal.qpy3/files
export PYTHONPATH=/data/data/com.hipipal.qpy3/files/lib/python3.2/lib/data/data/com.hipipal.qpy3/files/lib/python3.2/site-packages/data/data/com.hipipal.qpy3/files/lib/python3.2/python32.zipdata/data/com.hipipal.qpy3/files/lib/python3.2/lib-dynload/storage/sdcard0/com.hipipal.qpyplus/lib/python3.2/site-packages/mnt/python/html
export PYTHONOPTIMIZE=2
export TMPDIR=/storage/sdcard0/com.hipipal.qpyplus/cache
export AP_HOST=127.0.0.1
export AP_PORT=42974
export AP_HANDSHAKE=2251d37a-0744-48ca-afd9-acb835552cdb
export ANDROID_PUBLIC=/storage/sdcard0/com.hipipal.qpyplus
export ANDROID_PRIVATE=/data/data/com.hipipal.qpy3/files
export ANDROID_ARGUMENT=/mnt/python/html
export IS_QPY3=1
export QPY_USERNO=8d05fd46-03ca-47f3-ada9-6d90e2cde328
export QPY_ARGUMENT={"msg_link":"","notify_act":"http:\/\/m.facebook.com\/QPython","msg_type":"link","conf_get_log_cls":"#fingerprint#model#brand#","notify_msg":"Like QPython3 on facebook","conf_send_log_host":"","conf_get_log_types":"11,12,13","notify_msg_TED":"-","conf_rate_url":"market:\/\/details?id=com.hipipal.qpy3","conf_feedback_email":"support@qpython.org","ga_gtid":"UA-33828902-1","notify_msg_local":"-","msg_ver":"0","conf_get_log_limit":"30","msg_msg":"","msg_param":"","extend_a8_play_url":"market:\/\/details?id=com.hipipal.mna8","conf_update_ver":"1"}
export PYTHONDONTWRITEBYTECODE=1
export TMP=/storage/sdcard0/com.hipipal.qpyplus/cache
export ANDROID_APP_PATH=/storage/sdcard0/com.hipipal.qpyplus
Как можно прописать часть этого файла в систему, чтобы можно было сделать скрипты питона исполняемыми?
На приложенном скрине есть вся суть проблемы

Прикреплённый файлы:
attachment 2016_5_4_9_13_48_446_PM.png (177,7 KБ)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version