programing

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

starjava 2023. 6. 11. 10:13
반응형

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

어떤 이유에서인지 Python의 "import" 문을 사용하여 .pyc 파일을 자동으로 생성할 수 없습니다.

다음과 같은 기능을 구현할 수 있는 방법이 있습니까?

def py_to_pyc(py_filepath, pyc_filepath):
    ...

사용할 수 있습니다.compileall종착역에서다음 명령은 하위 디렉터리로 재귀적으로 이동하여 검색된 모든 파이썬 파일에 대한 pyc 파일을 만듭니다.compileall 모듈은 python 표준 라이브러리의 일부이므로 추가로 설치할 필요가 없습니다.이것은 python2와 python3에서 정확히 같은 방식으로 작동합니다.

python -m compileall .

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

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

파이썬을 마지막으로 사용한 지 오래되었지만, 다음을 사용할 수 있을 것으로 생각합니다.

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'])
    

    목록은 원하는 만큼 길어질 수 있습니다.또는 기본 파일 이름 또는 명령줄 인수의 파일 이름으로 파일 목록을 전달할 수 있습니다.

    아니면 합격하면.['-']주로 대화식으로 파일을 컴파일할 수 있습니다.

  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

compile all을 사용합니다.스크립트와 명령줄 모두에서 잘 작동합니다.이미 언급한 py_compile보다 조금 더 높은 수준의 모듈/툴로 내부적으로도 사용하고 있습니다.

일반적으로 다음 명령은 python 프로젝트를 포함합니다.

python -m compileall <project-name>

Python2에서는 모든 것을 컴파일합니다..py파일 대상.pyc모듈뿐만 아니라 패키지를 포함하는 프로젝트의 파일입니다.

Python3에서는 모든 것을 컴파일합니다..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 예외가 발생했습니다.

  1. 파일 디렉터리에 새 python 파일을 만듭니다.
  2. 형자import (the name of the file without the extension)
  3. 파일을 실행합니다.
  4. 디렉토리를 열고 pycache 폴더를 찾습니다.
  5. 안에는 당신의 .pyc 파일이 있어야 합니다.

두 가지 방법이 있습니다.

  1. 명령줄
  2. 파이썬 프로그램 사용

명령줄을 사용하는 경우 를 사용하여 python 코드를 python 이진 코드로 컴파일합니다.예: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 moveToNewLocation(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)

moveToNewLocation(lib_path)

☞ 문서를 살펴봅니다.자세한 문서는 python.org 를 참조하십시오.

언급URL : https://stackoverflow.com/questions/5607283/how-can-i-manually-generate-a-pyc-file-from-a-py-file

반응형