WSL 上で pyenv を使う方法
前提
- WSL がインストールされている。
- WSL 上に Homebrew がインストールされている。
- Windows の PATH を使用しない設定がなされている。(
appendWindowsPath=false
) - zlib-devel がインストールされている。(
apt-get install zlib1g-dev
もしくはyum install zlib-devel
を実行する。)
手順
pyenv をインストールする。
$ brew install pyenv
~/.bash_profile
に環境変数の設定を追加する。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
~/.bash_profile
に pyenv の初期化処理を追加する。
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
シェルを再起動する。
$ exec $SHELL -l
インストール可能な Python のリストを表示する。
$ pyenv install --list
指定したバージョンの Python をインストールする。
$ python install 3.8.5
グローバルで使用する Python を指定する。
$ pyenv global 3.8.5
使用する Python を確認する。
$ pyenv version
参考:
Homebrew + Windows 10 + WSL で pyenv、python のインストール – Qiita
Homebrew のインストールから pyenv で Python の Anaconda 環境構築までメモ – Qiita
WSL で Windows の PATH を引き継がないようにする方法 – Qiita
no module named zlib – Stack Overflow
brew install zlib-devel on Mac OS X Mavericks – Stack Overflow
_ctypes がインポートできない
現象
_ctypes
モジュールが見つからない旨のエラーが発生する。
ModuleNotFoundError: No module named '_ctypes'
対処法
libffi-devel
をインストールする。
$ yum install libffi-devel
Python をインストールし直す。
$ pyenv install -f 3.8.5
参考:
pyenv で3.7系のインストールに失敗したときのメモ – Qiita
pipenv の install 時に、No module named ‘_ctypes’ が発生する – Qiita
ImportError: No module named ‘_ctypes’ when using Value from module multiprocessing – Stack Overflow