WSL(Windows Subsystem for Linux)のUbuntu18.04 LTSにpyenvとvenvを使ってPython環境構築したので、その記録です。WSLでなくてもUbuntuなら手順は同じです。
環境比較は、記事「Windows PCで機械学習環境を作る方法まとめ」に書きました。
種類 | バージョン | 内容 |
---|---|---|
OS | Windows10 Professional 64bit | WSL(Windows Subsystem for Linux)でUbuntu18.04.1 LTSを使っています |
pyenv | 1.2.11 | pyenv1.2.8で検証しましたが、1.2.11でも同様なことを確認(2019/5/27) |
インストール手順
0. 前提
curlインストール済
環境構築後にTensorBoardを使おうとしたら「ImportError: No module named '_sqlite3'」とエラーが出てしまいました。最初にこれをインストールしておきましょう。そうしないと手順「1.5. Pythonのインストール」からやり直しです。(2019/1/2追記)
sudo apt-get install zlib1g-dev libssl-dev libsqlite3-dev libbz2-dev libncurses5-dev libgdbm-dev liblzma-dev libssl-dev tcl-dev tk-dev libreadline-dev
1. pyenvインストール
1.1. pyenvインストール
pyenv installerを使ってGithub wayの方法に従ってインストールしています。
curl https://pyenv.run | bash
1.2. .bashrcに追記
.bashrcに以下の3行を追記しました。
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init - zsh --no-rehash)"
eval "$(pyenv virtualenv-init -)"
1.3. pyenv確認
pyenvのバージョンを確認します。
pyenv -v
1.4. pyenvでインストール可能なPythonバージョン確認
pyenvでインストール可能なPythonバージョンを確認します。
非常にたくさんでてくるので、記事「pyenvでインストール可能なバージョン一覧を表示する方法」に記載されている方法で絞り込むと便利かもしれません。
pyenv install --list
1.5. Pythonのインストール
バージョンを指定してインストールします。
※なぜか、私のWSL環境では1時間弱かかりました・・・
pyenv install 3.6.8
Pythonの指定したバージョンがインストールできたことを確認します。
pyenv versions
1.6. Pythonのインストール結果の確認
ひとまずグローバルに設定して、現在のPythonバージョンを確認してみます。
pyenv global 3.6.8
python --version
which python
特定のディレクトリ配下で、Pythonバージョンを変えたい場合はlocalコマンドを使います。Pythonバージョンを変えたいディレクトリをカレントにしてpyenv local
で設定します。便利
pyenv local 3.5.5
python --version
which python
2022/7 追記
うまくPythonのバージョンがglobalでもlocalでも切替できないことがありました。
どうもVSCodeのインストールと関係しているようです(詳細未調査)。
pyenv versions
で確認すると、環境変数PYENV_VERSION
が悪さをしているようです。pyenv shell --unset
で環境変数が削除されます。
>> pyenv versions
system
* 3.10.4 (set by PYENV_VERSION environment variable)
3.9.13
以下のサイトを参考にしました。代わりにVSCodeで不都合が起こるか、などは見ていないです。
あと、この方法もあります。
2. venvで仮想環境設定
2.1. 仮想環境作成
ディレクトリを移動し、venvで仮装環境を作成します。
cd <directory>
python -m venv <enviroment name>
仮想環境作成によりディレクトリ直下に仮想環境名のフォルダが作成され、その直下にbin等のフォルダができます。lsで確認します。
ls <environment name> -al
2.2. 仮想環境有効化
仮想環境を有効化します。コマンドが長くてcondaに比べると少し面倒です。有効化した後はpip freezeやpip install等を使ってpython環境の管理をします。
source <environment name>/bin/activate
ついでにpipを最新化しておきましょう。
pip install --upgrade pip
基本的に便利なJupyter Labをインストールしておきます。Jupyter Notebookより使いやすいと思うようになってきました。
pip install jupyterlab
Jupyter Labの拡張で Variable Inspectorもインストールしておきます。これは、仮想環境を有効化して実行します。Notebook実行中に、いちいちprintコマンドなどを使わずに変数の値を見ることができます。
pip install lckr-jupyterlab-variableinspector
2.3. 仮想環境無効化
deactivateコマンドで無効化されます。
deactivate
その他
その他1 : venv仮想環境を削除
作成されたファルダを削除するで仮想環境が削除できるようです。
rm -fr <environment name>
その他2 : パッケージ一括upgrade
インストールしたパッケージを一括でupgrade。Condaの場合は一括パッケージupgradeが簡単だったのですが、少し面倒です。
Pro Tip - Pip Upgrade All Python Packagesを参考にしました。
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs pip install -U
その他3 : pyenvのupdate
pyenv自体のupdateをする場合です。pyenv-updateというPlug-inを使います。
まだPlug-inがなければcloneします。
git clone git://github.com/pyenv/pyenv-update.git $(pyenv root)/plugins/pyenv-update
後は以下のコマンドを叩くだけ。超簡単です
pyenv update
Macでhomebrew使っている場合は以下のコマンド。
brew upgrade pyenv
その他4 : pyenvでアンインストール
pyenvで管理しているpythonバージョンをアンインストールする場合です。の場所に"pyenv versions"で出てくるバージョン名を指定します。
pyenv uninstall <version>