2013-08-08 4 views
0

다른 파이썬 스크립트에서 파이썬 스크립트를 호출하려고합니다. 디렉토리가 다릅니다. 시도했지만파이썬 스크립트에서 파이썬 스크립트 호출하기

import subprocess 
subprocess.call("C:\temp\hello2.py", shell=True) 

하지만 아무것도 얻지 못했습니다. 작동하지 않습니다. 여러 포럼을 검토했지만 두 스크립트가 모두 같은 디렉토리에있을 때 호출하는 것이 전부입니다.

같은 디렉토리에 두 개의 스크립트가 모두 있습니다. 이 경우 Python.exe에서 (cmd 창을 통해) 모델을 실행할 수 있지만 IDLE에서는 실행할 수 없습니다. IDLE에서는 오류 메시지도 표시되지 않습니다.

정말 다른 스크립트를 다른 모듈로 정의 할 수 없기 때문에 그렇게해야합니다. 다른 스크립트에서 스크립트를 호출해야합니다.

+1

우선 원시 문자열을 사용하십시오. –

+1

"아무 것도 없어"? 오류 메시지조차 없습니까? – geoffspear

답변

6

탈출 백 슬래시 (\)

"C:\\temp\\hello2.py" 

또는 사용 원시 문자열

r"C:\temp\hello2.py" 

>>> print "C:\temp\hello2.py" 
C:  emp\hello2.py 
>>> print "C:\\temp\\hello2.py" 
C:\temp\hello2.py 
>>> print r"C:\temp\hello2.py" 
C:\temp\hello2.py 
+0

좋아요! 고마워. –

1

먼저 백 슬래시 것, 그리고와 두 번째 당신이해야 항상 전화 파이썬 스크립트 파이썬 인터프리터. *.py 파일이 무엇인지 모를 경우 그래서 :

import sys 
import subprocess 
subprocess.call([sys.executable, 'C:\\temp\\hello2.py'], shell=True) 
+0

나는이 변화를 만들었다. 괜찮 았어. 고맙습니다! –

+0

다른 파이썬 버전을 기대하는 써드 파티 파이썬 모듈을 호출하고 싶다면 때때로 적절할 지 모르겠다. 시스템에 등록 된 파이썬이 반드시 나쁜 것은 아닙니다. – tdelaney

1

나는 당신이 '. 나는 등 내가 다른 스크립트에서 스크립트를 호출 할 필요가 다른 모듈과 같은 다른 스크립트를 정의 할 수 없습니다'가 무슨 뜻인지 모르겠어요,하지만 난 당신을 생각 this answer에서와 같이 다른 파이썬 스크립트를 가져 와서 전체 서브 프로세스 비즈니스를 피할 수 있습니다.

즉 당신의 hello2.py 스크립트를 실행해야합니다

import imp 

hello2 = imp.load_source("hello2", 'C:\temp\hello2.py') 

- 나는 상황의 제약을 오해하고있어 경우 죄송합니다.

1

sys.path 목록을 변경하여 접근 할 수 있다고 생각합니다.

import sys 
sys.path.append("C:\\temp\\") 
import hello2 
관련 문제