Jupyter Notebookでwxpython [Mac]
はじめに
wxpythonを用いたアプリケーション開発に携わることになり,Jupyter Notebookを用いて進めようと思ったが環境構築に少し手間取ったのでメモ.
Anacondaを入れ終わった直後の状態からJupyter NoteBook上でwxpythonを使えるようになるまでをまとめる.
実行環境
Mac OS High Sierra 10.13.3
Anacondaで仮想環境を構築する
まずはwxpythonを使用するための仮想環境を作る.
$ conda create -n wxenv python=3.6 anaconda
$ conda info -e
wxenv /Users/username/anaconda3/envs/wxenv
root * /Users/username/anaconda3
conda info -e
コマンドで仮想環境が作られているか確認できる.
wxpythonをインストールする
構築した仮想環境に入る.
$ source activate wxenv
仮想環境から抜けるにはdeactivate
コマンドを用いる.
(wxenv)$ source deactivate
仮想環境にwxpythonをインストールする.
(wxenv)$ conda install wxpython
Jupyterのカーネルを作成する
この時点でJupyter Notebookにおいてwxpythonを用いたコードを実行すると以下のエラーが出る.
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.
この問題を解決するにはpythonw
コマンドを用いればいいらしい.
Please run with 'pythonw', not 'python' — cannot make plots in python/ipython from cmd line OSX
pythonw
を用いるカーネルを作成して実行することとする.
カーネルの作成
kernel作成については複数の手段が紹介されている.
以下のサイトを基に作成した.
Jupyter上でkernel切り替えをしてもうまく機能しない場合の解決方法
jupyter kernelspec list
コマンドで使用できるカーネルを確認できる.
(wxenv)$ jupyter kernelspec list
Available kernels:
python3 /Users/username/anaconda3/envs/wxenv/share/jupyter/kernels/python3
カーネルを追加する.
(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
--name NAME
で名前を指定しないと既存のPython3のkernelが上書きされるので注意.
--display-name DISPLAY-NAME
でJupyter Notebook上での表記を変更できる.
カーネルが追加されたか確認.
(wxenv)$ jupyter kernelspec list
Available kernels:
python3 /Users/username/anaconda3/envs/wxenv/share/jupyter/kernels/python3
wxpython /Users/username/Library/Jupyter/kernels/wxpython
既存のカーネルの保存場所と異なる場所にwxpythonが保存されている.
仮想環境内でしか使わないので既存のカーネルの場所と同じ場所に移す.
(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
既存のカーネルはそのフォルダを消去すれば消える.
(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
コマンドの変更(python→pythonw)
カーネルで用いるコマンドはカーネルが保存されているフォルダ内のkernel.jsonに書かれている.
{
"argv": [
"/Users/username/anaconda3/envs/wxenv/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "wxpython",
"language": "python"
}
ファイル内の/Users/username/anaconda3/envs/wxenv/bin/python
を/Users/username/anaconda3/envs/wxenv/bin/pythonw
に書き換えて保存.
これでwxpythonを使用できるようになった.
テスト
Jupyter Notebookを開き,kernelを変更.
以下のサンプルコードを実行
import wx
application = wx.App()
frame = wx.Frame(None, wx.ID_ANY, 'testframe')
frame.Show()
application.MainLoop()
さいごに
一応,Jupyter Notebookでwxpythonを用いることができるようになったので作業が捗るはず.
(もっといい方法があったり,この方法に問題があるかもしれない)
参照
Please run with 'pythonw', not 'python' — cannot make plots in python/ipython from cmd line OSX
Jupyter上でkernel切り替えをしてもうまく機能しない場合の解決方法
Jupyter Notebookをインストール・設定して勉強ノート作成環境をつくる [Mac]
How to use wxpython in an ipython notebook or console
Author And Source
この問題について(Jupyter Notebookでwxpython [Mac]), 我々は、より多くの情報をここで見つけました https://qiita.com/stktu_KU/items/2fdb35e5b9aa3bebd526著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .