使用 TerminalIDE 在 Android 上运行 Python 3

Posted

技术标签:

【中文标题】使用 TerminalIDE 在 Android 上运行 Python 3【英文标题】:Python 3 on Android using TerminalIDE 【发布时间】:2014-03-01 15:42:13 【问题描述】:

我想在我的 android 设备上编写 Python 3 代码。所以我通过Lanky Cyril's blog 发布了使用终端IDE 将我需要在Android 终端上执行代码的所有内容。对于安装在博客上的 Python 2.X,它就像一个魅力。

所以我使用相同的说明安装了 Python 3。这是我尝试启动 Python 3 时得到的结果:

terminal++:~$ ~/python3                                                                                                                                              
Fatal Python error: Py_Initialize: unable to load the file system codec
LookupError: no codec search functions registered: can't find encoding
Segmentation fault 

我确定:

export PYTHONHOME=/data/data/com.googlecode.python3forandroid/files/python3
export PYTHONPATH=$PYTHONHOME/lib/python3.2/lib-dynload

我还在 *** 上查看了 python 3 is not loading 的原因。

所以问题可能出在 python 构建上。有没有人解决这个问题?

【问题讨论】:

一旦您超过 Android 5+,您将需要安装 termux 应用程序并使用 apt-get vim 命令安装 vim。 Termux 已安装 Python 3。 【参考方案1】:

我通过访问 Python-for-Android (Py4A) 主页找到了解决方案,并找到了允许 Python3 在 Android 上作为“独立”运行的脚本。

有 3 种方法可以做到这一点:

我创建了“standalone.sh”脚本,将其保存在“HOME”(export HOME=/data/data/com.spartacusrex.spartacuside/files), 将其模式更改为可执行,调用它并出现python。

我打开~/.bashrc 并粘贴复制到代码中:

export EXTERNAL_STORAGE=/mnt/sdcard/com.googlecode.python3forandroid
export PY34A=/data/data/com.googlecode.python3forandroid/files/python3
export PY4A_EXTRAS=$EXTERNAL_STORAGE/extras
PYTHONPATH=$EXTERNAL_STORAGE/extras/python3
PYTHONPATH=$PYTHONPATH:$PY34A/lib/python3.2/lib-dynload
export PYTHONPATH
export TEMP=$EXTERNAL_STORAGE/extras/python3/tmp
export PYTHON_EGG_CACHE=$TEMP
export PYTHONHOME=$PY34A
export LD_LIBRARY_PATH=$PY34A/lib
$PYTHONHOME/bin/python3 "$@"

请注意,这意味着每次启动终端 IDE 时,您都会自动加载 Python 并在 Python 提示符下找到自己。

要以正常方式启动 Python,如 Lanky Cyril 所示,请将以下代码粘贴到 .bashrc 中:
export EXTERNAL_STORAGE=/mnt/sdcard/com.googlecode.python3forandroid
export PY34A=/data/data/com.googlecode.python3forandroid/files/python3
export PY4A_EXTRAS=$EXTERNAL_STORAGE/extras
PYTHONPATH=$EXTERNAL_STORAGE/extras/python3
PYTHONPATH=$PYTHONPATH:$PY34A/lib/python3.2/lib-dynload
export PYTHONPATH
export TEMP=$EXTERNAL_STORAGE/extras/python3/tmp
export PYTHON_EGG_CACHE=$TEMP
export PYTHONHOME=$PY34A
export LD_LIBRARY_PATH=$PY34A/lib

您会注意到第二个解决方案中的最后一行已被取出并放入可执行文件“~/python”中。代码如下:

  #!/system/bin/sh   
  /data/data/com.googlecode.python3forandroid/files/python3/bin/python3 "$@"

我使用了第二个,这样当我启动终端 IDE 时,我会立即得到我的 Python 提示符。我安装了第三个解决方案,这样,如果我离开 Python 提示符,我就有办法回到同一个终端会话。

【讨论】:

以上是关于使用 TerminalIDE 在 Android 上运行 Python 3的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 12 中使用 WorkManager

Android Handler使用

何时在 Android 中使用 RxJava,何时使用 Android 架构组件中的 LiveData?

如何在 android 应用程序中使用 OSM 地图。?有啥教程可以学习在android中使用OSM吗?

在 xml (android:, app:, @.., ...) 上使用 android 前缀

Android:如何在 Android 中使用 tensorflow lite 扩展图像的维度