2013-06-11 124 views
2

我需要從外部SD卡運行Python腳本,該腳本在目標設備中安裝爲/mnt/sdcard/_ExternalSD從外部SD卡運行Py4A腳本?

我已經成功完成,在快速&骯髒的方式由標準SL4A scripts目錄,這在我的目標設備的情況下,是準備「代理」腳本ExtSDRun.py/mnt/sdcard/sl4a/scripts

import android 
droid = android.Android() 
import os 
import sys 
# Add directory with the scripts to the Python path 
sys.path.append("/mnt/sdcard/_ExternalSD/scripts") 
# Start the script located in the external SD card 
# in the script_to_run.py file 
import script_to_run 
# You can also do: 
# from script_to_run import * 

有任何更好,更優雅的方式來實現這一目標?

回答

-2

簡答:你不能。一個更好的方法來做你正在做的是把一個主要的功能是script_to_run。即,如果script_to_run包含在此:

import sys 
sys.stdout.write('Hi!\n') #Technically I should use print, but I'm trying 
#to make the program longer. 

你可以這樣做:

import sys 

def main(): 
    sys.stdout.write('Hi!\n') 

然後,當你導入它,使用:

import script_to_run 
script_to_run.main() #This is what runs the script 

此外,請參閱https://stackoverflow.com/a/4463726/2097780。我不會推薦這樣做,但如果你不能以另一種方式調用main,它可能是一種選擇。

祝你好運!

+0

這不是問題的答案。如果你確定這是不可能的,你能解釋爲什麼嗎? –

+0

@CarlSmith:1.你提供的腳本。需要root和b。不適合我。他在要求從Python運行腳本。 shell腳本需要SL4A請求root訪問權限。但標準的su二進制文件不適用於SL4A,所以你必須下載suu(su unrestricted)。然後,仍然存在腳本無法正常工作或需要調整Python庫文件才能工作的問題。最後,你會非常頭痛,沒有成就。我應該知道:我經歷了這個! – refi64

+0

〜我不明白。我提供的腳本是Python,適用於我的Galaxy SII,它不是根源。你是說該設備必須植根於Python才能訪問外部卡?我發佈的腳本在我的無根設備上執行任何文件,但我沒有外部卡。我會看一看,看看我能否找到一張卡片,測試它,然後回覆你。 –

0

我很確定你可以從外部SD卡上運行腳本。嘗試this。這是一個簡單的Python函數,啓動任何腳本SL4A都有一個安裝的解釋器,給定腳本的任意路徑。我沒有外部卡進行測試,但沒有理由讓它失敗。