Форум сайта python.su
Предисловие.
Я написал проект для личных нужд и хотел его внедрить на своей работе. Мелочь, конечно, но приятно - своими руками сделано. Однако, отдел ИТ-безопасности сначала не понял, что вообще такое Питон, а когда выяснил, то сказал, что это разработка и вообще опасно. Ставить отказался. Что ж ладно, пусть это будет на их совести. Но и мы не пальцем деланы.
Решил я интерфейс своего приложения перенести с tk на вэб-интерфейс.
Принцип прост. Есть смартфон с QPython 3 (3.2). На нем крутится простой http-серверок и выполняются скрипты Питона. Пользователи подключаются к нему через браузер и работают. Сервер я проверил-работает. Хром отлично открывает стартовую страничку, ходит по ссылкам. НО, скрипты выполнить не получается. При нажатии на ссылку со скриптом, появляется в логе сервера такая ошибочка:
Traceback (most recent call last):Рабочая папка со скриптом лежит на карте памяти (/mnt/sdcard/1python/html/cgi-bin/).
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
Офлайн
Самый правильный и простой метод карту в EXT и примаунтить.
Офлайн
Итак, раздобыл флешку, форматнул в ехт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
#!/system/bin/sh export TERM=screen export PATH=/data/data/com.hipipal.qpy3/files/binsbin
system/bin
system/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.zip
data/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
Прикреплённый файлы: 2016_5_4_9_13_48_446_PM.png (177,7 KБ)
Офлайн