[python] .py 파일에서 .pyc 파일을 수동으로 생성하는 방법

어떤 이유로 든 파이썬의 “import”문에 의존하여 .pyc 파일을 자동으로 생성 할 수는 없습니다.

다음과 같이 함수를 구현하는 방법이 있습니까?

def py_to_pyc(py_filepath, pyc_filepath):
    ...



답변

compileall터미널에서 사용할 수 있습니다 . 다음 명령은 하위 디렉토리로 재귀 적으로 이동하여 찾은 모든 파이썬 파일에 대해 pyc 파일을 만듭니다. compileall의 당신이 그것을 사용하는 것이 아무것도 추가를 설치할 필요가 없습니다 모듈은 파이썬 표준 라이브러리의 일부입니다. 이것은 python2와 python3과 동일하게 작동합니다.

python -m compileall .


답변

명령 줄에서 다음을 사용하여 개별 파일을 컴파일 할 수 있습니다.

python -m compileall <file_1>.py <file_n>.py


답변

마지막으로 Python을 사용한 지 얼마되지 않았지만 사용할 수 있다고 생각합니다 py_compile.

import py_compile
py_compile.compile("file.py")


답변

파이썬 스크립트를 바이트 코드로 컴파일하는 가지 방법을 찾았 습니다.

  1. py_compile터미널에서 사용 :

    python -m py_compile File1.py File2.py File3.py ...

    -m 컴파일 할 모듈 이름을 지정합니다.

    또는 대화식 파일 컴파일

    python -m py_compile -
    File1.py
    File2.py
    File3.py
       .
       .
       .
  2. 사용 py_compile.compile:

    import py_compile
    py_compile.compile('YourFileName.py')
  3. 사용 py_compile.main():

    한 번에 여러 파일을 컴파일합니다.

    import py_compile
    py_compile.main(['File1.py','File2.py','File3.py'])

    원하는만큼 목록이 커질 수 있습니다. 또는 명령 줄 args에서 기본 또는 파일 이름의 파일 목록을 전달할 수 있습니다.

    또는 ['-']main을 전달하면 대화식으로 파일을 컴파일 할 수 있습니다.

  4. 사용 compileall.compile_dir():

    import compileall
    compileall.compile_dir(direname)

    제공된 디렉토리에 존재하는 모든 단일 Python 파일을 컴파일합니다.

  5. 사용 compileall.compile_file():

    import compileall
    compileall.compile_file('YourFileName.py')

아래 링크를 살펴보십시오.

https://docs.python.org/3/library/py_compile.html

https://docs.python.org/3/library/compileall.html


답변

compileall 사용 합니다 . 스크립트와 명령 줄에서 잘 작동합니다. 이미 언급 한 py_compile 보다 약간 높은 수준의 모듈 / 도구 이므로 내부에서도 사용됩니다.


답변

Python2에서는 다음을 사용할 수 있습니다.

python -m compileall <pythonic-project-name>

어떤 차종 모두 컴파일 .py.pyc하위 폴더를 포함 프로젝트에.


Python3에서는 다음을 사용할 수 있습니다.

python3 -m compileall <pythonic-project-name>

모든 컴파일 .py__pycache__하위 폴더가 포함 된 프로젝트 폴더로 .

또는 이 게시물 에서 브라우닝으로 :

.pyc다음을 사용하여 Python2 와 동일한 폴더 에 파일 레이아웃을 적용 할 수 있습니다 .

python3 -m compileall -b <pythonic-project-name>

이 옵션 -b.pyc파일을 기존 위치로 출력 합니다 (예 : Python2와 동일).


답변

원래 질문 요구 사항 (소스 경로 및 대상 경로)을 일치 시키려면 코드는 다음과 같아야합니다.

import py_compile
py_compile.compile(py_filepath, pyc_filepath)

입력 코드에 오류가 있으면 py_compile.PyCompileError 예외가 발생합니다.