파이썬 파일 확장자, .pyc .pyd .pyo는 무엇을 의미합니까?


436

이 파이썬 파일 확장자는 무엇을 의미합니까?

  • .pyc
  • .pyd
  • .pyo

차이점은 무엇이며 * .py 파일에서 어떻게 생성됩니까?

답변:


481
  1. .py: 이것은 일반적으로 작성한 입력 소스 코드입니다.
  2. .pyc: 이것은 컴파일 된 바이트 코드입니다. 모듈을 가져 오면 파이썬은 *.pyc바이트 코드가 들어 있는 파일을 빌드하여 나중에 더 쉽고 빠르게 가져올 수 있습니다.
  3. .pyo: 이것은 *.pyc최적화 ( -O) 플래그 로 작성된 파일에 대해 Python 3.5 이전에 사용 된 파일 형식 입니다. (아래 참고 참조)
  4. .pyd: 이것은 기본적으로 Windows dll 파일입니다. http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dll

또한에 대한 더 자세한 설명은 .pyc.pyo, 한 번 봐 걸릴 : http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html를 (I 아래의 중요한 부분을 복사 한)

  • -O 플래그를 사용하여 Python 인터프리터를 호출하면 최적화 된 코드가 생성되어 '.pyo'파일에 저장됩니다. 최적화 프로그램은 현재 많은 도움이되지 않습니다. 단언 문 만 제거합니다. -O를 사용하면 모든 바이트 코드가 최적화됩니다. .pyc 파일은 무시되고 .py 파일은 최적화 된 바이트 코드로 컴파일됩니다.
  • 두 개의 -O 플래그를 Python 인터프리터 (-OO)에 전달하면 바이트 코드 컴파일러가 최적화를 수행하여 드문 경우지만 프로그램이 오작동 할 수 있습니다. 현재 __doc__바이트 코드에서 문자열 만 제거되므로 더 작은 '.pyo'파일이 생성됩니다. 일부 프로그램은 이러한 프로그램을 사용할 수 있기 때문에 수행중인 작업을 알고있는 경우에만이 옵션을 사용해야합니다.
  • '.py'파일에서 읽을 때보 다 '.pyc'또는 '.pyo'파일에서 읽을 때 프로그램이 더 빨리 실행되지 않습니다. '.pyc'또는 '.pyo'파일에 대해 더 빠른 유일한 것은 파일을로드하는 속도입니다.
  • 명령 행에서 이름을 지정하여 스크립트를 실행할 때 스크립트의 바이트 코드는 절대 '.pyc'또는 '.pyo'파일에 기록되지 않습니다. 따라서 대부분의 코드를 모듈로 이동하고 해당 모듈을 가져 오는 작은 부트 스트랩 스크립트를 사용하면 스크립트 시작 시간을 줄일 수 있습니다. 명령 줄에서 '.pyc'또는 '.pyo'파일의 이름을 직접 지정할 수도 있습니다.

노트 :

2015-09-15에 Python 3.5 릴리스 는 PEP-488을 구현하고 .pyo파일을 제거했습니다 . 이는 .pyc파일 이 최적화되지 않은 바이트 코드와 최적화 된 바이트 코드를 모두 나타냅니다.


2
dll 파일은 파이썬 스크립트 또는 c / c ++ 스크립트에서 생성됩니까?
Yanki Twizzy

1
@yankitwizzy : 예. C / C ++ 코드에서 생성해야합니다. 파일은 머신 코드에 있어야하므로 파이썬에서 직접 가져올 수 없습니다.
Bill Lynch

"최적화 프로그램은 현재 많은 도움이되지 않으며 단언 문 만 제거합니다." 이거 확실하니? Trydef f(x): assert(x**5 == x*x*x*x*x); return x; import timeit; print(timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=10000));
Jorge Leitao

@ JCLeitão : 나는 무엇에 대해 확신합니까? 주석에 코드를 던지는 대신 예제가 생각하는 것을 설명해 주시겠습니까?
Bill Lynch

9
참고 파이썬 3.5 , PEP 488 의 개념을 멀리하지 구현, .pyo파일. 최적화 된 바이트 코드조차도 .pycPython 3.5 확장으로 끝납니다 .
Michael Currie 2016 년

228
  • .py- 일반 스크립트
  • .py3- (드물게 사용되는) Python3 스크립트. Python3 스크립트는 일반적으로 ".py3"이 아닌 ".py"로 끝나지만 몇 번 본 적이 있습니다.
  • .pyc- 컴파일 된 스크립트 (바이트 코드)
  • 지며 .pyo - 최적화의 pyc 파일 (Python3.5로, 파이썬은 이영표와 PYC보다는 PYC 사용합니다)
  • .pyw- 콘솔없이 창 모드에서 실행되는 Python 스크립트. pythonw.exe로 실행
  • .pyx -Cython src를 C / C ++로 변환
  • .pyd -Windows DLL로 작성된 Python 스크립트
  • .pxd -C / C ++ 헤더에 해당하는 Cython 스크립트
  • .pxi -MyPy 스텁
  • .pyi- 스텁 파일 ( PEP 484 )
  • .pyz -Python 스크립트 아카이브 ( PEP 441 ); 이것은 표준 Python 스크립트 헤더 다음에 이진 형식으로 압축 된 Python 스크립트 (ZIP)를 포함하는 스크립트입니다.
  • .pywz -MS-Windows 용 Python 스크립트 아카이브 ( PEP 441 ); 이것은 표준 Python 스크립트 헤더 다음에 이진 형식으로 압축 된 Python 스크립트 (ZIP)를 포함하는 스크립트입니다.
  • .py [cod] -파일이 ".pyc", ".pyo"또는 ".pyd"일 수 있음을 의미하는 ".gitignore"의 와일드 카드 표기법.
  • .pth- 경로 구성 파일 내용은에 추가 할 추가 항목 (한 줄에 하나씩) sys.path입니다. site모듈을 참조하십시오 .

추가 Python 파일 확장명 (대부분은 드물고 비공식적)의 더 큰 목록은 http://dcjtech.info/topic/python-file-extensions/ 에서 찾을 수 있습니다.


11
«.pyx»파일은 C로 변환되는 파이썬 소스가 아니라 Cython 소스 코드 (예 : C로 변환 대기 중)
Fred Osterrath

PYI 확장에서 "I"는 무엇을 나타 냅니까? "포함"/ "구현"/ "인터페이스"?
ChrisFreeman

1
.pyw는 Python 4 Windows가 아닌 Window를 만드는 PYthon 스크립트를 의미합니다. .pyw는 * nix에서 실행할 수 있습니다
Kotauskas September

1
일반적으로 .pyw는 창 모드에서 실행하는 스크립트입니다 (예 : 콘솔 출력 없음). @VladislavToncharov는 파이썬 이 설치되어 있다면 대부분의 플랫폼에서 실행될 수있다 .
Steve Barnes

1
이 답변은 .pth파일에 대해 논의해야 합니다.
wim
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.