wxPython + 가상 환경(virtualenv) 개발 세팅

tl;dr
https://github.com/crowjdh/wxpython_venv_example

wxPython + 가상 환경 세팅시 문제점들
- wxPython은 pip로 설치를 제공하지 않는다. 거기다 공식 사이트에서 제공하는 패키지 파일은  패키지 구성이 다른 관계로 OSX 10.11(El Capitan) 이상에서 설치할 수 없다.
- OS X는 "신뢰할 수 있는 프레임워크와 바이너리"만이 스크린에 접근할 수 있다. 그러므로 가상환경(virtualenv)을 설정하되 Python 자체는 Framework에 설치된, 혹은 Brew를 통해 설치된 Python을 사용하도록 변경해야 한다.

1. 리패키징 + 설치

위 과정을 거쳐 생성한 패키지 파일을 설치한다.

2. 가상환경 설정
"신뢰할 수 있는 프레임워크와 바이너리"만이 스크린에 접근할 수 있으므로 가상환경의 파이썬 바이너리 대신 시스템(프레임워크 혹은 brew로 설치한) 파이썬 바이너리를 사용해야 한다.
wxPython venv linker 이 레포의 컨텐츠를 다운받아 wxPython을 적용하고자 하는 프로젝트의 루트에 위치시킨다.
위 레포의 루트의 python(소프트 링크 파일)는 .python_wrappers/python_2.7_framework를 가리키고 있으므로 만약 Brew의 Python을 사용하고 있다면 .python_wrappers/python_2.7_brew를 가리키도록 변경한다.

3. requirements.txt 설치
위 2를 수행하면 가상환경에 wxPython이 설치된 "것처럼" 보이기 때문에 pip freeze > requirements.txt를 통해 dependencies를 업데이트 하면 requirements.txt에 wxPython이 추가된다.

하지만 처음에 설명한 대로 wxPython은 pip로 설치할 수 없기 때문에 매번 pip install -r requirements.txt를 수행할 때마다 에러를 뱉게 된다. OSX 기준 이하와 같이 설치하자.
cat requirements.txt | xargs -n 1 pip install

References
- http://davixx.fr/blog/2016/01/25/wxpython-on-os-x-el-capitan/
- http://stackoverflow.com/a/28795395

댓글

이 블로그의 인기 게시물

Unity에서 모델의 폴리곤의 반대편이 랜더링 되지 않는 문제 해결 방법

Use FFMPEG in XCode(for MacOS)