64
71

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2018-12-31

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で設定します。便利:grinning:

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

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

pyenv update

Macでhomebrew使っている場合は以下のコマンド。

brew upgrade pyenv

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

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

pyenv uninstall <version>
64
71
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
64
71

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?