Help us understand the problem. What is going on with this article?

UbuntuにpyenvとvenvでPython開発環境構築

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 -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

1.2. .bashrcに追記

.bashrcに以下の3行を追記しました。
1行目の部分はユーザIDに置換ください。
2行目がGithub wayにか書かれているコマンドと異なります。これは、公式どおりにした場合、異常に遅くなってしまったため、GitHubのIssueを参照して変更しました。

export PATH="/home/<user>/.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で設定します。便利:grinning:

pyenv local 3.5.5
python --version
which python

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コマンドなどを使わずに変数の値を見ることができます。

jupyter labextension 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

後は以下のコマンドを叩くだけ。超簡単です:grinning:

pyenv update

その他4 : pyenvでアンインストール

pyenvで管理しているpythonバージョンをアンインストールする場合です。の場所に"pyenv versions"で出てくるバージョン名を指定します。

pyenv uninstall <version>
FukuharaYohei
気の向いたままにいろいろと書きます。 仕事はSAP関連で、HANA、Fiori、SAPUI5、BusinessObjectsなどいろいろやっています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした