当我的QPython android脚本尝试启动另一个qpython脚本时,我收到了一个权限被拒绝错误。 我假设这可以做到 - 对吧?
我已经尝试过subprocess.call,这似乎是正确的做法。 但是,脚本不运行,日志显示权限被拒绝错误。
显而易见的事情是查看子脚本的权限,但我不知道如何在我的Android手机上执行此操作。
任何意见/建议都表示赞赏。
感谢。
答案 0 :(得分:1)
首先,如何打开命令提示符(bash)
实际上qpython =终端模拟器+ Python代码编辑器+ Python解释器。 所以当然你可以使用控制台!为什么你不能输入bash是因为每次你点击qpython中的控制台图标它都会运行python。只需输入会导致解释器错误的内容,例如“我想要bash!”然后运行它,解释器将中断然后返回bash。
其次,qpython如何运行你的脚本
它将你的python脚本传递给shell脚本(qpython.sh),然后通过python解释器运行你的脚本。
第三,关于权限
为什么许可被拒绝?您无法直接运行python脚本,因为它未标记为可执行文件。但是你可以将脚本的路径传递给python解释器来运行它。
最后,如何在qpython中通过python脚本调用python脚本?
#-*-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])
希望这对你有帮助!
(我无法自己添加图片,因为我没有那么多的声誉,我需要其他人将我的图片链接更改为图片。所以如果你喜欢我的答案,请投票给我。谢谢。)
答案 1 :(得分:0)
一旦知道脚本的位置,只需移动到该文件夹,然后使用以下命令列出文件:
ls -l
该命令将所有文件与权限(第一列)一起输出。 现在,将权限更改为"执行"你可以使用:
chmod 755 [your-script-name]