답변:
compileall
터미널에서 사용할 수 있습니다 . 다음 명령은 하위 디렉토리로 재귀 적으로 이동하여 찾은 모든 파이썬 파일에 대해 pyc 파일을 만듭니다. compileall의 당신이 그것을 사용하는 것이 아무것도 추가를 설치할 필요가 없습니다 모듈은 파이썬 표준 라이브러리의 일부입니다. 이것은 python2와 python3과 동일하게 작동합니다.
python -m compileall .
-O
바이트 코드 (.pyo 파일 iso .pyc) 컴파일 에 대한 플래그를 살펴보십시오 .
compileall
내 사이트 패키지 폴더에서 작업을 수행하여 모든 것을 망쳤습니다.
마지막으로 Python을 사용한 지 얼마되지 않았지만 사용할 수 있다고 생각합니다 py_compile
.
import py_compile
py_compile.compile("file.py")
__pycache__/file.cpython-32.pyc
것으로 반환 값으로 얻습니다.
파이썬 스크립트를 바이트 코드로 컴파일하는 몇 가지 방법을 찾았 습니다.
py_compile
터미널에서 사용 :
python -m py_compile File1.py File2.py File3.py ...
-m
컴파일 할 모듈 이름을 지정합니다.
또는 대화식 파일 컴파일
python -m py_compile -
File1.py
File2.py
File3.py
.
.
.
사용 py_compile.compile
:
import py_compile
py_compile.compile('YourFileName.py')
사용 py_compile.main()
:
한 번에 여러 파일을 컴파일합니다.
import py_compile
py_compile.main(['File1.py','File2.py','File3.py'])
원하는만큼 목록이 커질 수 있습니다. 또는 명령 줄 args에서 기본 또는 파일 이름의 파일 목록을 전달할 수 있습니다.
또는 ['-']
main을 전달하면 대화식으로 파일을 컴파일 할 수 있습니다.
사용 compileall.compile_dir()
:
import compileall
compileall.compile_dir(direname)
제공된 디렉토리에 존재하는 모든 단일 Python 파일을 컴파일합니다.
사용 compileall.compile_file()
:
import compileall
compileall.compile_file('YourFileName.py')
아래 링크를 살펴보십시오.
py_compile
및 compileall
NOT py_compile.py
나 compileall.py
. 즉, python3 -m py_compile PYTHON_FILENAME
또는 이어야합니다 python3 -m compileall PYTHON_FILES_DIRECTORY
.
compileall 사용 합니다 . 스크립트와 명령 줄에서 잘 작동합니다. 이미 언급 한 py_compile 보다 약간 높은 수준의 모듈 / 도구 이므로 내부에서도 사용됩니다.
compileall
해당 .pyc
파일이 이미 최신 상태 인 파일 을 건너 뛰는 논리를 포함 하지 않습니까?
compileall
는 이미 최신 버전 .pyc
(Python 2.7.11에서 테스트)을 가진 파일을 건너 뜁니다.
python -m compileall <pythonic-project-name>
어떤 차종 모두 컴파일 .py
에 .pyc
하위 폴더를 포함 프로젝트에.
python3 -m compileall <pythonic-project-name>
모든 컴파일 .py
을__pycache__
하위 폴더가 포함 된 프로젝트 폴더로 .
또는 이 게시물 에서 브라우닝으로 :
.pyc
다음을 사용하여 Python2 와 동일한 폴더 에 파일 레이아웃을 적용 할 수 있습니다 .
python3 -m compileall -b <pythonic-project-name>
이 옵션
-b
은.pyc
파일을 기존 위치로 출력 합니다 (예 : Python2와 동일).
명령 행을 사용 python -m compileall <argument>
하는 경우 파이썬 코드를 파이썬 이진 코드로 컴파일하십시오. 전의:python -m compileall -x ./*
또는 이 코드를 사용하여 라이브러리를 바이트 코드로 컴파일 할 수 있습니다.
import compileall
import os
lib_path = "your_lib_path"
build_path = "your-dest_path"
compileall.compile_dir(lib_path, force=True, legacy=True)
def compile(cu_path):
for file in os.listdir(cu_path):
if os.path.isdir(os.path.join(cu_path, file)):
compile(os.path.join(cu_path, file))
elif file.endswith(".pyc"):
dest = os.path.join(build_path, cu_path ,file)
os.makedirs(os.path.dirname(dest), exist_ok=True)
os.rename(os.path.join(cu_path, file), dest)
compile(lib_path)
자세한 설명서 는 ☞ docs.python.org 를 참조하십시오.