2019.01.04

"파이썬 앱 패키징·배포를 더 쉽게"··· '파이옥시다이저' 프로젝트 시작

Serdar Yegulalp | InfoWorld
단독으로 바이너리 실행 가능한 파이썬 애플리케이션을 패키지, 배포하는 작업을 더 간편하게 하는 새로운 프로젝트가 시작됐다. 파이썬 개발자가 오랫동안 불편해했던 바로 그 작업으로, 러스트(Rust)를 이용한다.



이 프로젝트의 이름은 파이옥시다이저(PyOxidizer)다. 이 프로젝트의 깃허브 리드미(readme) 파일에 따르면, 파이옥시다이저는 파이썬 인터프리터가 포함된 라이브러리와 바이너리를 더 쉽게 만들 수 있는 러스트 크레이트 모음이다. 이를 이용하면 다른 런타임 종속성이 없이 파이썬 인터프리터를 내장한, 실행 가능한 파이썬 앱을 개발할 수 있다고 파이옥시다이저 개발자들은 주장했다.

파이옥시다이저를 사용하려면 러스트 1.31 이상 버전을 설치해야 한다. 파이썬 3.7 버전으로 작성한 앱만 패키징할 수 있다. 구체적인 사용법은, 먼저 개발자가 파이썬 앱을 내장하는 방법을 규정한 TOML 파일을 만들어야 한다. 이후 이 TOML 파일이 가리키는 환경에서 빌드한 후 파이옥시다이저를 실행하면 된다.

파이옥시다이저는 파이썬 인터프리터의 커스텀 빌드를 사용하는 데 있어 다른 패키징 솔루션과 차별화된다. 예를 들어 파이썬 인터프리터는 다른 프로그램에 정적으로 연결, 내장하는 방식으로 설계됐다. 따라서 파이인스톨러(PyInstaller) 같은 기존 솔루션은 기존 스톡 C파이썬 .DLL을 재배포한다. 이는 편리하고 호환성이 높지만 유연성이 떨어진다. 반면 파이옥시다이저는 파이썬 앱용 바이트코드를 실행 가능한 이미지에 추가하고 이를 메모리에서 직접 호출한다. 파일 시스템에서 불러오지 않으므르 더 속도가 빠르다.

단, 파이옥시다이저 역시 파이인스톨로처럼 파이썬 코드에 대한 어떤 최적화 작업도 수행하지 않는다. 이런 최적화를 위한 프로젝트는 '누이트카(Nuitka)'가 있다. 파이썬 앱을 단독으로 실행할 수 있도록 컴파일하는 것은 물론 컴파일된 코드에 대해 성능 최적화 작업까지 수행한다. 그러나 누이트카는 현재까지 여전히 베타 단계 프로젝트이고 다른 성능 형상 프로젝트들도 아직 사용할 수 없는 것이 많다.

파이옥시다이저는 초기 단계 프로젝트여서 리눅스 바이너리만 생성할 수 있다. 파이옥시다이저가 의존하는 업스트리밍 프로젝트 중 하나인 C파이썬 임베디드 버전이 현재 리눅스 빌드에서만 사용할 수 있기 때문이다. ciokr@idg.co.kr



2019.01.04

"파이썬 앱 패키징·배포를 더 쉽게"··· '파이옥시다이저' 프로젝트 시작

Serdar Yegulalp | InfoWorld
단독으로 바이너리 실행 가능한 파이썬 애플리케이션을 패키지, 배포하는 작업을 더 간편하게 하는 새로운 프로젝트가 시작됐다. 파이썬 개발자가 오랫동안 불편해했던 바로 그 작업으로, 러스트(Rust)를 이용한다.



이 프로젝트의 이름은 파이옥시다이저(PyOxidizer)다. 이 프로젝트의 깃허브 리드미(readme) 파일에 따르면, 파이옥시다이저는 파이썬 인터프리터가 포함된 라이브러리와 바이너리를 더 쉽게 만들 수 있는 러스트 크레이트 모음이다. 이를 이용하면 다른 런타임 종속성이 없이 파이썬 인터프리터를 내장한, 실행 가능한 파이썬 앱을 개발할 수 있다고 파이옥시다이저 개발자들은 주장했다.

파이옥시다이저를 사용하려면 러스트 1.31 이상 버전을 설치해야 한다. 파이썬 3.7 버전으로 작성한 앱만 패키징할 수 있다. 구체적인 사용법은, 먼저 개발자가 파이썬 앱을 내장하는 방법을 규정한 TOML 파일을 만들어야 한다. 이후 이 TOML 파일이 가리키는 환경에서 빌드한 후 파이옥시다이저를 실행하면 된다.

파이옥시다이저는 파이썬 인터프리터의 커스텀 빌드를 사용하는 데 있어 다른 패키징 솔루션과 차별화된다. 예를 들어 파이썬 인터프리터는 다른 프로그램에 정적으로 연결, 내장하는 방식으로 설계됐다. 따라서 파이인스톨러(PyInstaller) 같은 기존 솔루션은 기존 스톡 C파이썬 .DLL을 재배포한다. 이는 편리하고 호환성이 높지만 유연성이 떨어진다. 반면 파이옥시다이저는 파이썬 앱용 바이트코드를 실행 가능한 이미지에 추가하고 이를 메모리에서 직접 호출한다. 파일 시스템에서 불러오지 않으므르 더 속도가 빠르다.

단, 파이옥시다이저 역시 파이인스톨로처럼 파이썬 코드에 대한 어떤 최적화 작업도 수행하지 않는다. 이런 최적화를 위한 프로젝트는 '누이트카(Nuitka)'가 있다. 파이썬 앱을 단독으로 실행할 수 있도록 컴파일하는 것은 물론 컴파일된 코드에 대해 성능 최적화 작업까지 수행한다. 그러나 누이트카는 현재까지 여전히 베타 단계 프로젝트이고 다른 성능 형상 프로젝트들도 아직 사용할 수 없는 것이 많다.

파이옥시다이저는 초기 단계 프로젝트여서 리눅스 바이너리만 생성할 수 있다. 파이옥시다이저가 의존하는 업스트리밍 프로젝트 중 하나인 C파이썬 임베디드 버전이 현재 리눅스 빌드에서만 사용할 수 있기 때문이다. ciokr@idg.co.kr

X