할 수 있는 컴파일된 바이트코드 파일(.pyc)에 생성됩니다 다른 디렉토리?[중복]

StackOverflow https://stackoverflow.com/questions/611967

  •  03-07-2019
  •  | 
  •  

문제

가능한 중복:
방법은 컴파일된 파이썬은 파일에서 별도의 폴더?

When python 컴파일되는 모듈은 바이트 코드를 생산하고 있습니다.pyc 에서 파일을.py 파일이 있습니다.

나의 질문은,그것이 가능하면 이들이다.pyc 파일에 기록하는 디렉터리와 다른 모듈이 있는?

예를 들어,내가 큰 디렉토리의 모듈을 사용합니다.보다는 데 그것을 뒤덮는다.pyc,파일 내가를 유지하고 싶은 나의 소스 코드에서는 디렉토리와 하위디렉토리를 같이"바이트 코드는"모든다.pyc 저장됩니다.

이것이 가능한가요?

도움이 되었습니까?

해결책

이것은 대답에서"방법은 컴파일된 파이썬은 파일에서 별도의 폴더?"

짧은 대답: No –지 않으면 당신은 실행 파이썬 3.2 이상–보 .

을 명확히:전 3.2,당신 컴파일한 바이트 코드를 넣고 다른 곳에서 당 브라이언 R.봉디의 제안,하지만 당신은 실제로 실행 그것은 거기에서(그리고 폴더에서 당신은 유지하려면 원)파이썬은 여전히 출력 바이트 코드는 곳이다.py 파일은.

다른 팁

확인 py_compile 모듈, 며,특히:

py_compile.compile(file[, cfile[, dfile[, doraise]]])

끊은 매개변수에 관심이 있습니다.

에서 위의 링크:

...바이트 코드 작성을 끊, 기본값은 파일+'c'...

나는 이것에 대한 답을 찾고 있었고 너무 많이 찾을 수 없었습니다. 그러나 폴더 이름을 새로 컴파일 된 파일 이름으로 접두사 만 접두사 할 수 있습니다 (폴더가 먼저 존재하는지 확인해야 함)

다음은 저에게 적합한 코드입니다.

import py_compile
import os
import glob
import shutil

path = ''
for infile in glob.glob( os.path.join(path, '*.py') ):
    print "current file is: " + infile
    strDestination = 'compiled/' + infile + 'c'
    py_compile.compile(infile,strDestination)

"쓰레기"가 실제로 당신의 문제인 경우 항상 포장 할 수 있습니다. .py, .pyc 및/또는 .pyo .zip 파일의 파일과 sys.path.

나는 이것이 불가능하고 파이썬 사람들이 어디에서 기억할 수 없지만, 가능하지 않은 이유가 있다는 것을 어딘가에 읽는 것을 기억하는 것 같습니다.

편집하다: 죄송합니다. 질문을 잘못 읽었습니다. 내가 의미하는 바는 바이트 코드 파일을 기본적으로 다른 디렉토리에 넣기 위해 Python 실행 파일을 구성하는 것이 불가능하다는 것입니다. 바이트 코드 파일을 선택한 위치에 놓을 작은 Python 컴파일러 스크립트를 항상 작성하거나 찾을 수 있습니다.

스크립트를 작성하여 컴파일 한 다음 주위를 움직일 수 있습니다. 같은 것 :

for i in `ls *.pyc`
do
 mv $i $DEST_DIR
done

(단축 될 수 있습니다.

for i in *.pyc
do
    mv $i $DEST_DIR
done

또는 놀랍게도

mv *.pyc $DEST_DIR

)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top