2013-04-27 5 views
2

나는 멀티 프로세싱을 배우기 위해 파이썬 3 독스를 따르고 있었지만 이전에 눈치 채지 못한 이상한 것을 발견했습니다. 스크립트를 실행 한 후 코드는 "pycache"디렉토리에서 작동하는 독립 실행 형 바이너리로 컴파일됩니다. 누군가 제게 이것을 설명해 주시겠습니까? 문제가있는 경우 Windows 8과 Python 3.3을 사용하고 있습니다 (둘 다 AMD64). 고맙습니다. 나는 다음과 같은 한파이썬 3 코드가 스스로 컴파일되는 이유는 무엇입니까?

from multiprocessing import Process 

def f(name): 
    print('hello',name) 

if __name__ == '__main__': 
    for i in range(5): 
     p = Process(target=f, args=('bob',)) 
     p.start() 
     p.join() 
    input() #Added this so that I can see my results. 

자습서 : 모듈을 가져올 때 파일을 재분석 할 필요가 없습니다 있도록 http://docs.python.org/3.3/library/multiprocessing.html

답변

2

는, 파이썬 바이트 코드를 캐시합니다. 캐시 된 바이트 코드는 __pycache__ 폴더에 저장됩니다. multiprocessing은 암시 적으로 모듈을 가져 오므로 캐시됩니다. Python은 현명하고 오래된 경우에는 사용하지 않으므로 안전하게 무시할 수 있습니다. 이 실제로 인 경우 모든 디렉토리와 파일을 만들고 싶지 않을 경우 환경 변수 PYTHONDONTWRITEBYTECODE1으로 설정하십시오.

+0

대단히 감사합니다. 짧고 간단한 대답 :) – ever99

관련 문제