2012-10-22 2 views
2

민트 13을 실행 중이고 apt-get 패키지 관리 시스템을 사용하여 python 3.2를 설치했습니다. 나는 또한 python 2.7을 3.2와 함께 설치했다. pycompile은 파이썬 2.7 코드를 패키지화 한 것으로 보이며 파이썬 3.2 코드에 대해서는 예외를 던진다.python3.2 용 pycompile

나는 약간의 패키지를 둘러 보았지만 python 3.2에서 pycompile을 찾지 못했습니다. 파이썬 3.2에서 pycompile 작업을 수행하려면 어떻게해야합니까?

+2

우분투에는 'py3compile' 프로그램이 설치되어 있습니다. –

답변

5

py_compile은 stdlib 모듈입니다. 바이트 코드 주어진 파이썬 소스를 생성 할 수 있습니다. 을 그것은 거의 필요하지 않습니다.

버전 파이썬 2.7에서 버전 함께하지 포함 py_compile 당신이 명령 줄에서 사용하는 경우 사용합니다 파이썬 3 소스 코드를 컴파일하려면 :

pyc-f iles는 의 cfile 매개 변수를 사용할 수 있도록 저장되어 있습니다.

바이트 코드로 인해 스크립트가 더 빨리 실행됩니까?

(소량) 파이썬 컴파일러는 그렇게하지 않아서 빠릅니다.

여기 바이트 코드는 사람이 읽을 수있는 형태로 보이는 방법 예입니다 :

>>> def f(o): 
...  with o: 
...   pass 
... 
>>> import dis 
>>> dis.dis(f) 
    2   0 LOAD_FAST    0 (o) 
       3 SETUP_WITH    5 (to 11) 
       6 POP_TOP    

    3   7 POP_BLOCK   
       8 LOAD_CONST    0 (None) 
     >> 11 WITH_CLEANUP   
      12 END_FINALLY   
      13 LOAD_CONST    0 (None) 
      16 RETURN_VALUE 

모든 무거운는 런타임시 바이트 코드를 해석 파이썬 인터프리터를 위해 남아 있습니다.

또는 배포 전용입니까?

문서는 커튼 사용자 만 쓸 수있는 파이썬 모듈이있는 공유 디렉토리 인 유스 케이스를 제공합니다. 디스크에 대한 바이트 코드 캐싱을 비활성화하여 해당 pyc 파일없이 읽기 전용 위치에 저장된 py 파일을 사용할 수 있습니다.

왜 거의 사용되지 않습니까?

일반적으로 pyc 파일은 빌드/설치 프로세스에 의해 생성됩니다. pyc 파일이 없다면 모듈을 가져올 때 즉석에서 생성 될 수 있습니다 :

$ python -c 'import some_module' 
+0

고맙습니다. 바이트 코드로 인해 스크립트가 더 빠르게 실행됩니까? 아니면 유통 전용입니까? 거의 사용되지 않는 이유는 무엇입니까? –

+0

@LordLoh : 답변을 업데이트했습니다. – jfs

0

이것은 내가 발견 한 것입니다 : http://effbot.org/librarybook/py-compile.htm

내가 위의 링크에 설명 된대로 파이썬 3.2 쉘이 할 시작할 수 있어요. 결과는 홀수 디렉토리에 .pyc 파일입니다. pycom은 .py 텍스트 파일보다 큽니다 (이 문제가 발생해야합니까?) 이것은 pycompile만큼 만족스러운 해결책이 아닙니다. - 뭔가를 찾을 때까지 :-(