2011-01-07 2 views
37

일반적으로 Python 스크립트를 실행할 수 있습니다 : 예 : python myscript.py, 대화 형 모드 인 경우 Python 스크립트를 실행할 수있는 방법은 무엇입니까? 파일 시스템에?대화 형 모드에있는 동안 Python 스크립트를 실행할 가능성이 있습니까

>>> exec (파일) ???

스크립트를 두 번 이상 실행할 수 있어야합니다.

+2

왜 'myscript.py'에 적절한 "메인"기능이 없습니까? 왜'myscript'와'myscript.main()'을 import 할 수 없습니까? 그것은 일반적인 접근 방식입니다. 왜 그렇게되지 않을까요? 적절한 "메인"기능을 추가하기 위해 myscript를 고칠 수 있습니까? –

+0

문제는 "paster shell"을로드하고 있고 다른 프로젝트 라이브러리를로드하는 중입니다. 그리고이 대화 형 쉘에서 나는 몇 가지 것을 시도하고 싶습니다. 하지만 맞습니다. 당신의 제안은 좋은 것입니다. – lennykey

+3

질문에 답을 얻지 못했지만, 당신이나 다른 사람들과 관련이있는 경우, 제가 적극적으로 개발할 때 유용하다고 생각합니다 :'PYTHONSTARTUP = some_script.py python -i'. 그러면 some_script.py가 실행되어 대화식 쉘로 이동합니다. 작업 스크립트가 지역 변수를 정의하면 셸에서 로컬 변수에 액세스 할 수 있습니다. 코드를 실험하거나 사실 이후의 행동을 분석하려고 할 때이 방법이 유용 할 수 있습니다. – Mark

답변

35

사용 execfile('script.py')하지만 3.0을 사용하는 경우에만, 파이썬 2.x에서 작업이 this

+0

Thx. 나는 이것이 나를 위해 작동하고 최소 configuary 상용구가 있다고 생각합니다 – lennykey

22

import file .py 확장자없이 수행하면 __name__이되지 않으므로 "__main__"이 아니므로 스크립트가 대화식으로 실행되는지 확인하기 위해 검사를 수행하면 무시할 수 있습니다.

스크립트가 python -i script.py

편집을 시도 실행 후 환경을 살펴 가지고 싶어하는 경우 는

다른 방법으로는 : 다시로드하려면

file = reload(file)

+3

'스크립트가 실행 된 후에 환경을 살펴보고 싶다면 python -i script.py를 사용해보십시오.이 서사시는 고맙습니다! –

2

당신이 사용하는 시스템 명령을 실행할 수 있습니다 python :

>>>from subprocess import Popen 
>>>Popen("python myscript.py", shell=True) 
+3

하위 프로세스가 이상적이지 않습니다. 변수가 완전히 다른 프로세스에 있기 때문에 해당 변수와 상호 작용할 수 없으며 출력을 보려면 다른 명령이 필요합니다. –

5

subprocess 모듈을 사용할 수도 있습니다. 같은 :

>>> import subprocess 
>>> proc = subprocess.Popen(['./script.py']) 
>>> proc.communicate() 
9

당신은 IPython 보길 원하는 것일 수도 시도, 더 강력한 대화 형 쉘. %run script.py을 비롯한 다양한 "마법"명령이 있습니다 (물론 스크립트를 실행하고 사용자가 정의하기 위해 정의한 변수는 그대로 둡니다).

+1

이것은 나를 위해 작동하지 않습니다. 나는 어떤 변수에도 접근 할 수 없다. 내 스크립트를 main()에 넣을 수 있습니까? – LWZ