芋の独り言

当ブログへのアクセスは当ブログのプライバシーポリシーに同意したものとみなします.

WSL:anyenvでPython環境構築してwxPythonを使う

anyenv

~$ cd
~$ git clone https://github.com/anyenv/anyenv ~/.anyenv
~$ sudo nano .bashrc

# anyenv setting
export PATH=${PATH}:${HOME}/.anyenv/bin
eval "$(anyenv init -)"

~$ exit

次に,Windows側でPowerShell(もしくはコマンドプロンプト)を実行権限付きで起動させ, 以下のコマンドを実行します.

> net stop LxssManager
LxssManager サービスを停止中です.
LxssManager サービスは正常に停止されました。

> net start LxssManager
LxssManager サービスを開始します.
LxssManager サービスは正常に開始されました。

以上を行った後に再度WSLを起動すると,WSL上のUbuntuが再起動した状態になります. 以下でWSL上でexitした後は再起動が必要であるため,以上を同様に行います.

Python環境を構築するためにpyenvをインストールします.

~$ anyenv install --init
~$ anyenv install pyenv
~$ exit

pyenvでPython環境を構築します. [1]ではRubyの環境構築としてrbenvを使って複数のバージョンのRubyを インストールして使い分けしていますが, やることは同じですね~ 実行するコマンドはrbenvをpyenvに書き換えたものを以下のように逐次実行します.

~$ pyenv install -l
~$ pyenv install anaconda3-2019.10
Downloading Anaconda3-2019.10-Linux-x86_64.sh...
-> https://repo.continuum.io/archive/Anaconda3-2019.10-Linux-x86_64.sh
Installing Anaconda3-2019.10-Linux-x86_64...
Installed Anaconda3-2019.10-Linux-x86_64 to /home/ユーザ名/.anyenv/envs/pyenv/versions/anaconda3-2019.10

~$ pyenv global anaconda3-2019.10

pyenv install -lPythonの一覧が表示されるので,インストールしたいバージョンを選んでインストールすれば環境構築できます. 私の場合はAnacondaを選びました. pyenv global Pythonのバージョンpythonとしたときに使うものとして登録される感じです.

ちなみにRの場合はanyenv install Renvです. ですが,Fortranコンパイラとか色々必要みたいで,Rのインストールが上手くいきません... やり方が分かれば,記事にしたいと思います.

wxPython

~$ conda install wxpython

wxPythonがインストールされます.Linuxだとpipで入れられないです.たしか.原因は分からないですが...

ImportError: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory

wxPythonPythonスクリプトでインポートして使おうとすると以上のエラーが出るので,

~$ sudo apt-get install libgtk2.0-0

と素直にインストールします.エラーが出ない場合は必要ありません.ここで,再度実行すると,

Unable to access the X Display, is $DISPLAY set properly?

というエラーが出ます. WSLはCUIであり,GUI機能がないために出るエラーです. このエラーを解消するためには [6] [7] にあるようにVcXsrv Windows X Serverをインストールしてxlaunchファイルを作成しておき, その後にWSLで

~$ cd
~$ nano .profile
export DISPLAY=:0.0
~$ source .profile

を実行し(※これをやらずに以下をやると,WSLが認識していないため,GUI機能が使えません), さらに作成したxlaunchファイルを実行したうえで,WSLでwxPython(やGUI機能)を使ったスクリプトを実行しましょう.

実行すると,以下のようなダイアログが表示されます.

f:id:kusoimox:20200107140559p:plain
メッセージウィンドウ(文字化けしている...)
f:id:kusoimox:20200107140602p:plain
フォルダ(図の中はファイル名と書いてるが間違い)選択ダイアログ

参考サイト

  1. 日経Linux 2019年11月号|日経Linuxの65ページ
  2. WSL (Windows Subsystem for Linux) に仮想開発環境(anyenv)を構築する - Qiita
  3. WSL を再起動するには: パソコン鳥のブログ
  4. anyenvまとめ - Qiita
  5. Ubuntuでサクッとpython3環境構築+opencv3 | あれは魔法だろうか?
  6. WSLでGUIアプリ実行エラー:Error: Can’t open display:の対処法 | 人生は読めないブログ
  7. WSL(Windows Subsystem for Linux)上でGUIアプリを動かすまでの手順 | 人生は読めないブログ
  8. WSL上にXサーバをインストールしてGUIを実現する(VcXsrv編):Tech TIPS - @IT