QPython Android Kivy, запуск скрипта python из скрипта python

Я получаю сообщение об ошибке отказа в разрешении, когда мой скрипт Android QPython пытается запустить другой скрипт qpython. Я предполагаю, что это можно сделать - верно?

Я пробовал subprocess.call, что кажется правильным. Но сценарий не запускается, и в журнале отображается ошибка отказа в разрешении.

Очевидно, что нужно посмотреть разрешения субскрипта, но я не знаю, как это сделать на своем телефоне Android.

Любые комментарии/предложения приветствуются.

Спасибо.


person Nick    schedule 10.08.2016    source источник


Ответы (2)


Во-первых, как открыть командную строку (bash)

На самом деле qpython = эмулятор терминала + редактор кода Python + интерпретатор Python. Так что, конечно, вы можете использовать консоль! Почему вы не можете ввести bash, потому что каждый раз, когда вы нажимаете значок консоли в qpython, он запускает python. Просто введите что-нибудь, что вызовет ошибку интерпретатора, например «Я хочу bash!» затем запустите его, интерпретатор сломается, а затем вернется к bash.

введите здесь описание изображения

Во-вторых, как qpython запускает ваш скрипт

Он передает ваш скрипт Python в сценарий оболочки (qpython.sh), а затем запускает ваш скрипт с помощью интерпретатора Python.

В-третьих, о разрешениях

Почему в разрешении отказано? Вы не можете запустить скрипт Python напрямую, потому что он не помечен как исполняемый. Но вы можете передать путь к скрипту интерпретатору Python для его запуска.

Наконец, так как же вызвать скрипт python скриптом python в qpython?

#-*-coding:utf8;-*-
#qpy:2
#qpy:console
import subprocess
print("I am calling myself!")
pysh="/data/data/org.qpython.qpy/files/bin/qpython-android5.sh"
#if U R using android 5
#else
pysh="/data/data/org.qpython.qpy/files/bin/qpython.sh"
callpy=__file__
#the script path you want to run
subprocess.call([pysh,callpy])

введите здесь описание изображения

Надеюсь, это поможет вам!

(Я не могу добавить изображение сам, потому что у меня нет такой высокой репутации, мне нужен кто-то еще, чтобы изменить ссылку на изображение на изображение. Так что, если вам нравится мой ответ, пожалуйста, проголосуйте за меня. Спасибо.)

person KirkSu    schedule 25.02.2017

Как только вы узнаете, где находится скрипт, просто перейдите в эту папку, а затем используйте следующую команду, чтобы вывести список файлов:

ls -l

команда выводит все файлы вместе с разрешением (первая колонка). Теперь, чтобы изменить разрешение на «выполнение», вы можете использовать:

chmod 755 [your-script-name]
person Lino    schedule 10.08.2016
comment
так что @Nick это помогло? - person Lino; 11.08.2016
comment
К сожалению, это особо не помогло. У меня нет командной строки. - person Nick; 12.08.2016
comment
Я установил приложение командной строки Android. Это дало мне доступ к командной строке. Это круто. Теперь я могу перейти в этот каталог, но команда chmod приводит к тому, что операция не разрешена. Мой планшет не рутирован - в этом проблема? - person Nick; 12.08.2016