Jupter Notebook에서 wxptyhon[mac]

개시하다
저는 wxpytohon을 이용한 응용 개발에 종사하고 있으며 Jupyter Notebook을 사용하여 진행하고 싶었지만 환경 구축에 시간이 좀 걸려서 필기를 했습니다.
Anaconda를 놓은 상태에서 Jupter NoteBook에서 wxptyhon을 사용할 수 있을 때까지 정리합니다.
운영 환경
Mac OS High Sierra 10.13.3
Anaconda로 가상 환경 구축
우선 wxpythhon을 사용하는 가상 환경을 만듭니다.
conda-create
$ conda create -n wxenv python=3.6 anaconda
$ conda info -e
wxenv                    /Users/username/anaconda3/envs/wxenv
root                  *  /Users/username/anaconda3
conda info -e 명령이 가상 환경을 만들었는지 확인할 수 있습니다.
wxptyhon 설치
가상 환경에 들어가다.
conda-activate
$ source activate wxenv
가상 환경 사용 명령을 종료합니다.
conda-deactivate
(wxenv)$ source deactivate
가상 환경에 wxptyhon을 설치합니다.
install-wxpython
(wxenv)$ conda install wxpython
Jupyter의 커널 만들기
Jupter Notebook에서 wxpython을 사용하는 코드를 실행하면 다음 오류가 발생합니다.
error-message
This program needs access to the screen. Please run with a Framework build of python, and only when you are logged in on the main display of your Mac.
이 문제를 해결하려면 명령을 써도 될 것 같다.
Please run with 'pythonw', not 'python' — cannot make plots in python/ipython from cmd line OSX deactivate의 내핵을 제작하고 실행한다.
내핵의 제작
케네르 제작은 다양한 수단을 소개했다.
다음 사이트에 따라 제작되었습니다.
Jupyter에서kernel을 전환해도 제대로 작동하지 않는 상황에서의 해결 방법
명령에 사용되는 핵을 확실하게 인정할 수 있다.
kernel-list
(wxenv)$ jupyter kernelspec list
Available kernels:
  python3     /Users/username/anaconda3/envs/wxenv/share/jupyter/kernels/python3
커널을 추가합니다.
create-kernel
(wxenv)$ conda install notebook ipykernel
(wxenv)$ ipython kernel install --user --name wxpython --display-name wxpython
Installed kernelspec wxpython in /Users/username/Library/Jupyter/kernels/wxpython
pythonw에 이름을 지정하지 않으면 기존 Python 3의 kerner를 덮어씁니다.pythonw에서 Jupter Notebook의 태그를 변경할 수 있습니다.
커널이 추가되었는지 확인합니다.
kernel-list2
(wxenv)$ jupyter kernelspec list
Available kernels:
  python3     /Users/username/anaconda3/envs/wxenv/share/jupyter/kernels/python3
  wxpython    /Users/username/Library/Jupyter/kernels/wxpython
기존 핵의 저장 위치와 다른 곳에 wxptyhon이 저장되어 있습니다.
가상 환경에서만 사용하기 때문에 기존의 핵과 같은 곳으로 옮긴다.
kernel-list2
(wxenv)$ mv /Users/username/Library/Jupyter/kernels/wxpython /Users/username/anaconda3/envs/wxenv/share/jupyter/kernels/wxpython

(wxenv)$ jupyter kernelspec list
Available kernels:
  python3     /Users/username/anaconda3/envs/wxenv/share/jupyter/kernels/python3
  wxpython    /Users/username/anaconda3/envs/wxenv/share/jupyter/kernels/wxpython
기존의 핵을 지우면 그 폴더는 사라진다.
remove-kernel
(wxenv)$ jupyter kernelspec list
Available kernels:
  python3     /Users/username/anaconda3/envs/wxenv/share/jupyter/kernels/python3
  wxpython    /Users/username/anaconda3/envs/wxenv/share/jupyter/kernels/wxpython

(wxenv)$ rm -r /Users/username/anaconda3/envs/wxenv/share/jupyter/kernels/wxpython
(wxenv)$ jupyter kernelspec list
Available kernels:
  python3     /Users/username/anaconda3/envs/wxenv/share/jupyter/kernels/python3
명령의 변경
커널에서 사용하는 명령은 커널이 저장된 폴더의kerner입니다.제이슨에 쓰다.
kernel.json
{
 "argv": [
  "/Users/username/anaconda3/envs/wxenv/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "wxpython",
 "language": "python"
}
서류 속의 jupyter kernelspec list--name NAME로 바꾸어 보존하다.
이렇게 하면 wxptyhon을 사용할 수 있다.
테스트
Jupter Notebook을 열고 kernel을 변경합니다.

다음 샘플 코드를 실행합니다
sample-code
import wx

application = wx.App()
frame = wx.Frame(None, wx.ID_ANY, 'testframe')
frame.Show()

application.MainLoop()
테스트 프레임이라는 창이 뜨면 OK.

최후
대체로 Jupter Notebook에서 wxpython을 사용할 수 있으니 작업이 진전될 것이다.
(더 좋은 방법이 있거나 이 방법에 문제가 있을지도 모른다.)
인용하다
Please run with 'pythonw', not 'python' — cannot make plots in python/ipython from cmd line OSX
Jupyter에서kernel을 전환해도 제대로 작동하지 않는 상황에서의 해결 방법
Jupter Notebook을 설치하고 설정하여 학습 노트 제작 환경을 만들기[Mac]
How to use wxpython in an ipython notebook or console

좋은 웹페이지 즐겨찾기