2014-11-14 5 views
0

나는 다음과 같은 이상한 행동이 : 통역파이썬은 cmd를

import os 
from time import sleep 

os.chdir("C:\Path") 
execfile('YYY.py') 

비단뱀에서 :, 그것은 또 다른 파일을 호출

나는 파이썬 파일을 호출 (이것은 start.py 이름을 할 수 있습니다) (파이썬 쉘) 내가 ('start.py') execfile를 사용 모든 것이 PERFEKT 작동 - 다른 파일이 시작되고 내가 cmd를 >_PATH_to_Python/python.exe start.py를 실행하면, 파이썬이 시작

잘 작동 start.py가 실행됩니다 , os.chdir ("C : \ Path")는 작동하지만 실행 파일 YYY.py 내 모듈을 찾을 수 없습니다 :

from myclass import ZZZ 

ImportError no mudule named myclass 

내가 작동하지 않았다, 내 폴더에 빈 __init__.py 있습니다. 내 오른쪽에 폴더 (만약 내가 내 YYY.py에있는 파일을 나열, 내 모듈을 나열 ...)

사실 내가 왜 작동하지 않는지 이해가 안되기 때문에 내 의견으로는 start.py 난 그냥 내 파이썬 코드에 sys.path.append("C:\...\classes")을 추가

: cmd를 호출하거나 수동으로 더 이상

+0

'execfile'은'sys.path'에 스크립트 디렉토리를 추가하지 않습니다. 'myclass' 라이브러리가 올바르게 설치되었거나 적어도'PYTHONPATH'를 사용해야합니다. – eryksun

+0

좋아, 나는 myclass와 pythonpath를 검사 할 것이다. 하지만 당신이 생각하는 그 이상한, 내가 execfile ('start.py') 일하고있다,하지만 만약 내가 cmd를 통해 그것을 시작하지? – Michael

+0

일반적으로 스크립트의 디렉토리는'sys.path'에 추가됩니다.이 디렉토리는'import'가 스크립트 디렉토리에서 모듈과 패키지를 찾을 수있게합니다. 'execfile'은'sys.path'를 수정하지 않습니다. 수동으로해야 할 것입니다. 즉, 파이썬 3에는'execfile '이 없기 때문에 완전히 피하는 것이 더 낫다고 생각합니다. – eryksun

답변

0

좋아 (실제로 문제를 이해하는 데 도움에 대한 감사 @eryksun) 문제를 해결하기 위해 manged했던 사이에 차이가 안 (내 수업을 부르기 전에) 완벽하게 작동합니다. 인터프리터가 라이브러리를 찾는 sys.path에 클래스를 추가합니다. 이 시작된 후

는 또한 내 GUI는 항상 추락, 그래서 내가
>_PATH_to_Python/python.exe -i start_prog.py 

-i 매개 변수

을 추가하고 파이썬은 대화 형 모드에서 시작되고 모든 것이 작동 보인다.