如何讓自己在電腦上寫的python腳本在手機或安卓系統上運行呢??

如何讓自己在電腦上寫的python腳本在手機或安卓系統上運行呢??畢竟安卓也是用linux內核。。 python做的爬蟲,等網路程序能正常運行嗎??

由於要長時間運行一些腳本,畢竟總不能老開著電腦,安卓手機,平板到是有。一直都想把電腦上腳本搬到安卓上運行。節約資源。。呵呵


GNURoot - Google Play 上的 Android 應用

用這個裝個Debian, 可以apt-get, 體積不過100M, 隨便折騰


可以參考 GoAgent 安卓客戶端 GAEProxy (https://github.com/madeye/gaeproxy),看它是如何在安卓上搭建一個完整的 Python 環境。


Android可以用qPython。


2017.12.9更新。如果單純手機上使用python的話,安卓更推薦Pydroid3,可以直接在google play下載。該版本為免費,各種模塊如numpy,matplotlib,pandas,scipy,pillow,pyqt5,scikit-learn等等都可以安裝使用,不過免費版是沒有代碼提示功能的,有條件的還希望大家支持一下作者,開個pro版。

安卓推薦termux(安卓5.0以上),GNUROOT DEBIAN;ios推薦pythonista(付費)
前兩個相關的資源很多,不是針對python 的,java,c,php之類也不在話下,超級強大;後一個只針對python,安裝了stash後能少部分實現一些前者的功能。

1. 安卓系統

a. 推薦高級終端Termux(com.termux)_0.48_Android應用_酷安網,另一個比較推薦的是GNUROOT DEBIAN(5以下可用)。還有個LinuxDeploy(需越獄)等。

這兩個選擇的話,GNU屬於大而全的,裡面啥模塊都有,安裝包也挺大,termux如果不夠用就直接上這個吧。termux模塊要少一些,有些可能安裝不了或者比較麻煩,體積也是超小。我個人選擇termux是不需要用到太多模塊,也比較喜歡termux的交互界面。

termux這個軟體還是很強大的,不僅僅是可以運行python,linux上能用的大部分也都能用,下面關於termux針對python說一下(gnu更方便,直接apt install python-scipy之類搞定)。

【termux安裝某些模塊可能跟版本有關係,下圖是我手機中具體的模塊和版本號信息,如果安裝有誤請指定版本號】

1.1 下載安裝後要首先更新包,命令行輸入以下命令

apt update
apt upgrade

1.2 安裝python主程序和必要模塊

默認的python版本是3.6,為了避免安裝相關模塊失敗,python2建議也安裝了。

apt install python python-dev python2 python2-dev

1.3 安裝python模塊

1.3.1 爬蟲相關模塊

1. BeautifulSoup,requests

pip install BeautifulSoup4 requests

2. lxml模塊

apt-get install clang
apt-get install libxml2 libxml2-dev libxslt libxslt-dev
pip install lxml

3. scrapy模塊(必須先安裝lxml才行)

apt install openssl libffi libffi-dev
pip install scrapy

1.3.2 科學計算相關模塊

1. numpy;matplotlib;pandas;ipython(有些依賴跟爬蟲模塊重複,安裝會自動跳過)

apt install clang python python-dev fftw libzmq libzmq-dev freetype freetype-dev libpng libpng-dev pkg-config
LDFLAGS=" -lm -lcompiler_rt" pip install numpy matplotlib pandas jupyter

【安裝時間會有點長,主要是編譯過程,幾個模塊可以一個一個來裝,numpy是基礎庫,裝matplotlib和pandas前必須先裝,ipython可以單獨裝】

1.3.3 其他常用模塊(直接pip,或者安裝依賴後pip)

1. nltk,networkx

pip install nltk
pip install networkx

1.4 其他可選步驟

1.4.1 安裝常用應用(如vim,git)

apt install vim git

1.4.2 修改源(使用國內源安裝時比較快)

EDITOR&>&>&> export
EDITOR=vi&>&>&> apt edit-sources

* 打開文本編輯器後,替換成以下內容:

# The termux repository mirror from TUNA:
deb [arch=all,arm] http://mirrors.tuna.tsinghua.edu.cn/termux stable main

b. 其他python應用(有了上面的,下面的其實沒必要用了)

Qpython;Qpython3;Pydroid(https://play.google.com/store/apps/details?id=ru.iiec.pydroidhl=zh-CN)

前兩個分別支持python2和3,還可以跟安卓系統進行交互,如發簡訊,藍牙啥的,不過2還能用一些模塊像PIL,requests,3的基本都不能裝;

第三個也是很厲害的,此前支持Python2,最近出了新版支持Python3,scipy之類都可以用,以後有空再深入介紹吧。

2. ios

這個沒多少選擇,推薦pythonista3(付費)Pythonista 3 on the App Store

這個軟體也是很強大的,雖然沒上面的那麼變態。

2.1 自帶模塊

自帶的python模塊已經很多了,像requests,BeautifulSoup,numpy,matplotlib,PIL都有

2.2 ios模塊集成

appex,clipboard,dropbox等等,可以方便得從擴展菜單進行運行,獲取剪切板內容等等,比workflow更強大。

2.3 第三方加成:stash(git,pip等)

可以安裝stash,相當於一個shell,這樣就可以pip安裝一些模塊,還可以git之類的了。


在X86/64電腦上寫的程序一般是cPython的,部分API在其他平台(比如你的arm/android)上不一定有實現,標準庫也不近相同,更別說第三方庫了。。。

雖然也有arm linux兼容性好點,但那是裸arm平台上的,不是android之上的……

你想讓程序穩定長期執行,你需要的是一台linux伺服器,至少是一台VPS。

在手機、平板上跑跑python,那是偶爾玩耍,不是開發。。。


有個項目叫kivy,pc上的程序有時候可以無需改動直接在安卓上運行!

首先安卓上安裝kivy launcher,在sd卡上建一個目錄kivy,在kivy下創建程序的目錄,裡面必須包含兩個文件:main.py、android.txt,具體如何創建應用參見examples


一直用sl4a,

項目地址android-scripting -

Scripting Layer for Android brings scripting languages to Android. 自備梯子

支持多種腳本語言 如圖:


headfirst Python後面有講用Python寫安卓,當然qpython也是一個不錯的選擇


termux終端可以搭建完善的python開發環境,推薦試一下。


買個便宜的伺服器 類似阿里雲 直接做成網站程序。。


可以看下 Kivy: Cross-platform Python Framework for NUI Development

Kivy是一套專門用於跨平台快速應用開發的開源框架,使用Python和Cython編寫,對於多點觸控有著非常良好的支持。

目前,Kivy支持支持 Linux, Windows, MacOSX, Android 和 iOS 平台


執行完成之後如何獲取執行的結果才是關鍵,否則意義不大


推薦閱讀:

什麼是 APT 攻擊?
Https密鑰如何保存才能不被獲取到?
匿名者(Anonymous)是一個什麼樣的黑客組織?
網路安全工程師就是網管嗎?
該怎樣學習網路安全?

TAG:程序員 | Python | 網路安全 | Android開發 |