2013-06-11 2 views
2

대상 장치에서 외부 SD 카드에서 Python 스크립트를 실행해야합니다 (/mnt/sdcard/_ExternalSD).외부 SD 카드에서 Py4A 스크립트를 실행 하시겠습니까?

나는 내 대상 장치의 경우에 표준 SL4A 스크립트 디렉토리에서 "프록시"스크립트 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. 제공된 스크립트. 루트와 b가 필요합니다. 나를 위해 작동하지 않습니다. 2. 그는 Python에서 스크립트를 실행하길 원했습니다. 쉘 스크립트는 SL4A에 루트 액세스를 요청해야합니다. 그러나 표준 su 바이너리는 SL4A에서 작동하지 않으므로 suu (su unrestricted)를 다운로드해야합니다. 그리고 스크립트가 여전히 작동하지 않거나 작동하도록 Python 라이브러리 파일을 수정해야하는 문제가 여전히 남아 있습니다. 결국, 당신은 정말 큰 두통과 아무것도 달성하지 마라. 그리고 나는 알아야한다 : 나는 그것을 경험했다! – refi64

+0

~ 이해가 안됩니다. 내가 제공 한 스크립트는 파이썬이며 뿌리가 내 은하 SII에서 작동합니다. 외부 카드에 액세스하려면 장치가 파이썬 용이어야한다고 말하고 있습니까? 내가 게시 한 스크립트는 루틴되지 않은 장치의 모든 파일을 실행하지만 외부 카드가 없습니다. 나는 카드를 찾아서 시험해보고 다시 볼 수 있는지 살펴볼 것입니다. –

0

저는 외부 SD 카드에서 스크립트를 실행할 수 있다고 확신합니다. 시도하십시오 this. 스크립트를 시작하는 간단한 파이썬 함수입니다. SL4A에는 스크립트에 대한 임의의 경로가 주어지면 설치된 인터프리터가 있습니다. 테스트 할 외부 카드가 없지만 실패 할 이유는 없습니다.

관련 문제