Python + Visual Studio Code 環境の準備
方針
プログラミンは初めてであるが,TeXの執筆でVisual Studio Code(以下,VSCode)を使用するので,これからどのような言語を扱うかわからないが,統合環境はVSCodeに統一しようと思う.
もし,使っていてVSCodeの使い勝手が悪いようであれば,それはその時に考える.統合環境に限らず,環境の準備は一筋縄ではいかないので,この記事は試行錯誤の記録になると思われる.いずれは,綺麗にまとめたものを記事にしたい.
前提
MacOS Big Sur 11.5.2
Homebrew
- 導入方法や使い方は,今後記事にしたい.
Pythonのインストールと環境の構築
まず問題になるのが,どのバージョンのPythonを入れるべきかであるが,調べたところメジャーなバージョンが2.7系及び3.8系らしいのでそれを入れてみることにする.
pyenv
Pythonのバージョンはpyenv
で管理するので,Homebrew
でpyenv
をインストールする.
$ brew install pyenv
バージョンの確認
$ pyenv -v pyenv 2.0.5
pyenv
の必要な設定を~/.zshrc
に記述する.vi
などは初心者には使いづらいので,VSCodeで編集するのが直感的で良いと思う.
VSCodeから~/.zshrc
を編集するには,
$ code ~/.zshrc
とすれば良い.ファイルの上の方に次を記述する.
# pyenvさんに~/.pyenvではなく、/usr/loca/var/pyenvを使うようにお願いする export PYENV_ROOT=/usr/local/var/pyenv # 同じところにpathを通す export PATH="$PYENV_ROOT/bin:$PATH" # pyenvさんに自動補完機能を提供してもらう if command -v pyenv 1>/dev/null 2>&1; then eval "$(pyenv init -)" fi
上書き保存をして,ターミナルを入り直す.
(コマンドでターミナルを再起動する方法があるらしいが,よく意味がわかっていないでの,一度exit
して,「新しいウィンドウを開く(⌘+N)」している.)
上の設定ができているか確認する.
$ pyenv root
/usr/local/var/pyenv
複数のpython環境の構築及び切り替え
pyenv install --list
とするとインストール可能なリストを表示.2.x系と3.x系の最新をいれることにする.grep
を使って絞り込む.
~ >>> pyenv install --list | egrep '^[ ]+[23]\.[0-9\.]+$' | grep ' 2' | tail -n 1 2.7.17 ~ >>> pyenv install --list | egrep '^[ ]+[23]\.[0-9\.]+$' | grep ' 3' | tail -n 1 3.8.2
よって 2020/03/31 現在最新の2.7.17
と3.8.2
をいれることにする.
~ >>> pyenv install 3.8.2 ~ >>> pyenv install 2.7.17
インストール後は
~ >>> pyenv rehash # Rehash pyenv shims (run this after installing executables)
とするといいらしい.インストールしている python を確認するには
~ >>> pyenv versions * system (set by /usr/local/var/pyenv/version) 2.7.13 3.8.2
このままでは,system の python が使われているので,
~ >>> pyenv global 3.8.2 # globalで切り替え ~ >>> pyenv versions system 2.7.13 * 3.8.2 (set by /usr/local/var/pyenv/version)
とすれば,3.8.2
に切り替わる.
~ >>> zsh -l # zshの再起動 ~ >>> python --version Python 3.8.2
仮想環境 venv
python 自体に組み込まれている仮想環境作成ツール. もともと virtualenv という独立したツールだったが、python3.3 から組み込まれた.
~ >>> python -m venv [環境名]
で環境を作成.例えば,
~ >>> python -m venv ~/Documents/py_work/py3env
とDocument
に作成した.この中の構成は,
bin/ activate # この環境を利用するためのスクリプト pip # この環境用のpip python # pythonの実態へのリンク include/ lib/ # この環境のpipでインストールしたライブラリはこの下に置かれます。 pyenv.cfg
でライブラリもこの中に置かれるので他を汚さない.
ただし,これではまだ環境は有効になっていないので,
~ >>> source [環境名]/bin/activate
とする.この環境から出る場合は,
~ >>> deactivate
とすればいい.環境をリセットしたい場合は,deactivate
した状態で,
~ >>> python -m venv --clear [環境名]
とする.
pip
python のパッケージ管理ツールで,Python2.7.9以降、Python 3.4 以降からデフォルトで付属する.
pip は環境内に存在するので,pipでパッケージを管理する場合は,環境ごとにいれる必要がある.(パッケージのキャッシュは存在するみたいなので,毎回ダウンロードするわけではない.)
~ >>> pip -V # or pip --version pip 19.2.3 from /usr/local/var/pyenv/versions/3.8.2/lib/python3.8/site-packages/pip (python 3.8)
でバージョンの確認.
よくわかっていないが,path が通っている場合は,python -m
はつけてもつけなくても良い.例えば,
~ >>> python -m pip -V
~ >>> pip -V
は同じ.
pip パッケージの管理
インストールしているパッケージを確認
pip list
or
pip freeze
freeze
は表示形式が違って,細かく設定できるらしい.また,テキストファイルとして書き出すことも可能
pip freeze > requestment.txt
パッケージのアップデートは,
~ >>> pip list --outdated
でアップデートのあるパッケージを確認
~ >>> pip install --upgrade [package]
でアップデートできる.
pip-review で一括アップデート
環境にpip-review
をインストールする.
pip install pip-review
次のコマンドで一括アップデートできる.
pip-review --auto
VSCodeの設定
VSCode側の設定は簡単で通常通り拡張機能(⌘⇧X)を入れれば良い.現在導入しているPython関連の拡張機能は,
Python(必須)
Pylance
Jupyter
コマンドパレット(⌘⇧P)→設定(JSON)を開くからsettings.json
に次を記述する.
"python.pythonPath": "/usr/local/var/pyenv/shims", "python.defaultInterpreterPath": "/usr/local/var/pyenv/shims",
まとめ
これで一応の準備はできたはずである. 次回以降は,実際にコードを書いて練習してみる.