필자가 이해한다면 Python 컴파일 파일은 크로스 플랫폼입니다. 그렇다면 왜 대부분의 라이브러리를 배포하고 설치해야합니까?pyc 라이브러리가 pyc로 제공되지 않는 이유는 무엇입니까?
배포자 측에서 게으름인가, 아니면 단순히 pyc 파일을 배포 할 수 있다고 말하는 것이 잘못 되었습니까? 그렇지 않은 경우 사용자가 라이브러리를 빌드하고 설치하지 않고도 라이브러리가있는 사전 스크립트로 파이썬 스크립트 파일을 배포하려면 어떻게해야합니까?
필자가 이해한다면 Python 컴파일 파일은 크로스 플랫폼입니다. 그렇다면 왜 대부분의 라이브러리를 배포하고 설치해야합니까?pyc 라이브러리가 pyc로 제공되지 않는 이유는 무엇입니까?
배포자 측에서 게으름인가, 아니면 단순히 pyc 파일을 배포 할 수 있다고 말하는 것이 잘못 되었습니까? 그렇지 않은 경우 사용자가 라이브러리를 빌드하고 설치하지 않고도 라이브러리가있는 사전 스크립트로 파이썬 스크립트 파일을 배포하려면 어떻게해야합니까?
포함 된 코드의 형식이 각 (주요) Python 릴리스에서 변경 될 수 있기 때문에 소스 코드가 최소한 일 수 있으며이 호환 될 수 있습니다. 형식은 가장 잘 알려진 두 CPython and PyPy이다, 몇 가지가있는 구현 (사이 다를 수 있습니다.
가 된 .pyc 파일의 내부 구조에 대한 자세한 내용은 this article를 참조하십시오.
그들은 크로스 플랫폼입니다, 다른 버전의 CPython은 하나의 동일한 .pyc 파일에 문제가있을 수 있습니다.
그리고 PyPy, IronPython, Jython 등과 같은 다른 구현물을 보면 , .pyc 파일에 전혀 문제가 없을 것입니다.
게다가 .pyc 파일은 하나의 .py 파일에 해당합니다. (아마도) 염두에두고있는 것은 C로 쓰여진 부분을 포함하는 라이브러리입니다. 플랫폼 의존적 인 파일 (.pyd, .dll, .so 등)로 컴파일되어 작업해야합니다. 많은 개발자들이 지원되는 모든 플랫폼을 지원하지 않기 때문에 소스로 제공하고이를 사용자의 시스템에두고 컴파일합니다.
마지막 부분에 대한 참고 사항 : 컴파일 모듈이있는 Windows에서는 확장 모듈의 바이너리 배포가 일반적입니다. – delnan
.py 파일에서 .pyc 파일을 만드는 프로세스는 인터프리터에서 투명하게 수행됩니다. 일부 설치 관리자가 설치시 생성하는 이유는 순전히 스크립트가 처음 실행될 때 생성되는 것을 피하기 위해서입니다. 일반적으로 속도상의 이유 때문에 .pyc가 시스템 전체 (사용자가 아닌 사용자)로 끝날 수 있습니다. 쓰기 가능) 디렉토리. 컴파일 된 언어 또는 심지어 C로 작성된 파이썬 모듈과 달리 이 아니며 이러한 파일이 처음 존재한다는 기술적 요구 사항입니다. 그렇다면 자신의 스크립트를 직접 python
에 넣고 가져올 수 없습니다 컴파일 단계없이 실행하십시오.
설치하기 전에 빌드 단계를 엄격하게 요구하는 라이브러리에는 네이티브 코드로 컴파일되는 구성 요소가 있습니다. 확실히 은 플랫폼 간이 아닙니다. 순수한 파이썬 라이브러리의 경우, 모듈의 소스 디렉토리 트리를 PYTHONPATH의 어딘가에두면 충분합니다.
그리고 성능 향상이 유일한 것임을 알았습니다. 당신은 "컴파일"에 의해 초기의 '가져 오기'에 있습니다. 그렇지 않으면 모든 것이 정확히 같은 속도 AFAIK에서 실행됩니다. 즉, 'pyc' 또는'py'에서 실행되는 성능 차이를 알 수 없습니다. – mgilson