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
https://github.com/crowjdh/wxpython_venv_example
wxPython + 가상 환경 세팅시 문제점들
- wxPython은 pip로 설치를 제공하지 않는다. 거기다 공식 사이트에서 제공하는 패키지 파일은 패키지 구성이 다른 관계로 OSX 10.11(El Capitan) 이상에서 설치할 수 없다.
- OS X는 "신뢰할 수 있는 프레임워크와 바이너리"만이 스크린에 접근할 수 있다. 그러므로 가상환경(virtualenv)을 설정하되 Python 자체는 Framework에 설치된, 혹은 Brew를 통해 설치된 Python을 사용하도록 변경해야 한다.
1. 리패키징 + 설치
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# base workdir | |
mkdir ~/wxpython_elcapitan | |
cd ~/wxpython_elcapitan | |
# download the wxPython dmg | |
curl -L "http://downloads.sourceforge.net/project/wxpython/wxPython/3.0.2.0/wxPython3.0-osx-3.0.2.0-cocoa-py2.7.dmg?r=http%3A%2F%2Fwww.wxpython.org%2Fdownload.php&ts=1453708927&use_mirror=netix" -o wxPython3.0-osx-3.0.2.0-cocoa-py2.7.dmg | |
# mount the dmg | |
hdiutil attach wxPython3.0-osx-3.0.2.0-cocoa-py2.7.dmg | |
# copy the dmg package to the local disk | |
mkdir repack_wxpython | |
cd repack_wxpython | |
cp -r /Volumes/wxPython3.0-osx-3.0.2.0-cocoa-py2.7/wxPython3.0-osx-cocoa-py2.7.pkg . | |
# unmount the dmg | |
dmgdisk="$(hdiutil info | grep '/Volumes/wxPython3.0-osx-3.0.2.0-cocoa-py2.7' | awk '{ print $1; }')" | |
hdiutil detach ${dmgdisk} | |
# prepare the new package contents | |
mkdir pkg_root | |
cd pkg_root | |
pax -f ../wxPython3.0-osx-cocoa-py2.7.pkg/Contents/Resources/wxPython3.0-osx-cocoa-py2.7.pax.gz -z -r | |
cd ../ | |
# prepare the new package scripts | |
mkdir scripts | |
cp wxPython3.0-osx-cocoa-py2.7.pkg/Contents/Resources/preflight scripts/preinstall | |
cp wxPython3.0-osx-cocoa-py2.7.pkg/Contents/Resources/postflight scripts/postinstall | |
# delete the old package | |
rm -rf wxPython3.0-osx-cocoa-py2.7.pkg | |
# build the new one : | |
pkgbuild --root ./pkg_root --scripts ./scripts --identifier com.wxwidgets.wxpython wxPython3.0-osx-cocoa-py2.7.pkg | |
Reference: http://davixx.fr/blog/2016/01/25/wxpython-on-os-x-el-capitan/ |
위 과정을 거쳐 생성한 패키지 파일을 설치한다.
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
댓글
댓글 쓰기