【问题标题】:Run Python for Android (Qpython) in Android Terminal在 Android 终端中运行 Python for Android (Qpython)
【发布时间】:2015-07-24 12:12:43
【问题描述】:

适用于 Android 的 Python (Py4A 2.6) 太棒了!!!但是 QPython (2.7) 要强大得多,而且还在不断发展。现在我尝试将 Qpython 的 Python 集成到本教程中描述的 Android (5.1 CM12) Terminal / ADB 中:http://wiki.qpython.org/en/diveinto/

导入 qpython 需要的环境变量的我的脚本如下所示:

TERM=screen
PATH=/data/data/com.hipipal.qpyplus/files/bin:/system/bin:/system/xbin
LD_LIBRARY_PATH=.:/data/data/com.hipipal.qpyplus/files/lib/:/data/data/com.hipipal.qpyplus/files/:/data/data/com.hipipal.qpyplus/lib/
PYTHONHOME=/data/data/com.hipipal.qpyplus/files
ANDROID_PRIVATE=/data/data/com.hipipal.qpyplus/files
PYTHONPATH=/storage/emulated/0/com.hipipal.qpyplus/lib/python2.7/site-packages/:/data/data/com.hipipal.qpyplus/files/lib/python2.7/site-packages/:/data/data/com.hipipal.qpyplus/files/lib/python2.7/:/data/data/com.hipipal.qpyplus/files/lib/python27.zip:/data/data/com.hipipal.qpyplus/files/lib/python2.7/lib-dynload/:/storage/emulated/0/com.hipipal.qpyplus/scripts
PYTHONSTARTUP=/storage/emulated/0/com.hipipal.qpyplus/lib/python2.7/site-packages/qpythoninit.py
PYTHONOPTIMIZE=2
TMPDIR=/storage/emulated/0/com.hipipal.qpyplus/cache
AP_HOST=127.0.0.1
AP_PORT=58418
AP_HANDSHAKE=01805a68-c04c-4e21-bd54-ac8732f3a8da
ANDROID_PUBLIC=/storage/emulated/0/com.hipipal.qpyplus
ANDROID_PRIVATE=/data/data/com.hipipal.qpyplus/files
ANDROID_ARGUMENT=/storage/emulated/0/com.hipipal.qpyplus/scripts

Shell 会话:

u0_a101@C1905:/ $ source /sdcard/qpyenvnew.sh
u0_a101@C1905:/ $ $python
u0_a101@C1905:/ $ hmm do nothing?!

我没有输出。

我在 Stackoverflow 上找到了相同的问题,但发布的解决方案是一个链接如何关闭。

关于仅抛出错误的其他教程 http://dinostest.com/node/28

【问题讨论】:

    标签: android shell python-2.7 adb qpython


    【解决方案1】:

    在你的终端试试这个命令:

    $sh data/data/com.hipipal.qpyplus/files/bin/qpython.sh
    

    终端将提示 Python 控制台。

    【讨论】:

      【解决方案2】:

      如果您的环境变量脚本是通过运行教程链接中的代码获得的,那么它应该是正确的。

      如果您粘贴的内容正是您输入的内容,那么问题是您尝试通过键入 $python 来运行 pyhton,而它本应是 python

      使用$前缀来引用变量的值,所以输入$python引用了变量python的值,但没有做任何事情,因此没有反馈。

      【讨论】:

      • 很清楚。我都试过了。蟒蛇和$蟒蛇。我已经从 tut 复制并粘贴文本。
      • qpython wiki 上的指南是用于在 android 设备上安装的其他终端应用程序中运行 python,而不是 ADB shell
      • 如果我尝试像 $python print 2 这样简单的事情,如果我启动一个脚本,它说我没有执行权限(并且 chmod +x 不适用于 droid 术语)
      • @Pitto 尝试使用八进制,chmod 0777 file。如果您不想 chmod +x 表示 7,那么 0755 对您的用户甚至 root 来说都可以。 Android 的 chmod 实现不理解像 +x 这样的短标志。
      【解决方案3】:

      EDIT2:虽然这不是对这个问题的直接答案,但我建议您查看应用程序“Termux”。您可以通过 apt、virtualenv/-wrapper 等方式安装 Python2/3... 更强大!

      编辑:由于 /data/data... 只能以 root 身份访问,因此必须以 root 身份进行以下操作!

      注意 python 可执行文件路径在你的 $PATH 中。即使在从教程(您的脚本)运行脚本之后,情况也并非如此。如果它不存在,只需键入:

      导出 PATH=/data/data/com.hipipal.qpyplus/files/bin:$PATH
      或关注theses steps。简而言之:使用上述行在 /sdcard(此处为“.bashrc”)中创建一个文件。在该类型之后:
      source .bashrc
      source init.sh
      (init.sh 也位于 /data/data/com.hipipal.qpyplus/files/bin 中)

      然后使用
      python-android5
      启动 Python,它是带有 Lollipop 及更高版本的手机的 PIE 兼容可执行文件。但请注意:无论出于何种原因,我都无法退出()或退出() Python 提示符,但我能够从终端运行脚本!


      玩得开心!

      【讨论】:

      • 嘿fteinz!我个人会回滚并执行上述步骤。应该是保护程序,并且链接器很可能会在您下次更新手机时被覆盖......
      【解决方案4】:

      编辑:我发现了这个:PythonForAndroid。它是仍然存在的 PythonForAndroid 的一个分支,并且这个版本能够在 Android L 上运行(在我的例子中是 5.1.1 上的 Python3)。还要检查那里链接的 SL4A,它在 Lollipop 上效果很好。

      感谢上面的答案,我提出了一个超级简单的解决方案。如果您有 root:创建一个文件“python”并在其中键入以下行:

      sh data/data/com.hipipal.qpyplus/files/bin/qpython-android5.sh
      

      将此文件放在您的 /system/bin 目录中,您可以使用命令“python”从任何地方访问 python。

      【讨论】:

        猜你喜欢
        • 2015-11-13
        • 2015-10-12
        • 1970-01-01
        • 1970-01-01
        • 2019-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多