先日、研究室から拝借したMacBookAirをようやくセッティングする時間ができたので
やっていこうと思います。
使用PC:MacBook Air (Retina, 13-inch, 2020)
メモリ:8 GB 3733 MHz LPDDR4X
プロセッサ:1.1 GHz デュアルコアIntel Core i3
ゴール:Pyenv, Pipenvを適切にインストールする。
そもそもPyenv, Pipenvって何
Pyenv
指定したバージョンのpythonのインストール、及び利用したいバージョンのpythonへの切り替えをするバージョン切り替えツール
Pipenv
Pythonで開発を行う際に、プロジェクトごとにパッケージ管理や仮想環境構築を行うパッケージングツール
1. Xcodeのインストール
XcodeがないとHomebrewがインストールできません。
(正確にはできるらしいですが、こっちの方がややこしくないかと)
App storeでXcodeのインストールをしました。
まあまあ時間がかかりますが耐えましょう(涙)
2. Homebrewのインストール
~ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
これを実行しましょう。
(公式サイト:https://brew.sh/index_ja)
良い子は公式サイトからコピペしよう!
これもだいぶ実行時間が長いので漫画を読みながら気長に待ちましょう。
3. Pyenvのインストール
ようやく本題。
と言ってもインストールは楽勝
~ brew install pyenv
これだけ。実行時間も数十秒。
インストールの確認もこれだけ。
~ pyenv --version
pyenv 1.2.22
pyenv ○.○.○ってでればOK
試しにインストールしてみよう。
~ pyenv install --list
と打てば、インストールできるpythonの候補がずらっと出てきます。
適当に今回は3.8.7を選択。
~ pyenv install 3.8.7
インストール完了!
早速バージョンをきりかえてpythonを動かしてみようということで以下を実行
# 現在のpythonのバージョンを確認(systemはデフォルトのpythonのバージョン)
~ pyenv versions
* system
3.8.7
# システム全体のpythonのバージョンを変更
~ pyenv global 3.8.7
~ pyenv versions
system
* 3.8.7
よし。変更完了。あとは実行やでーと思ったがしかし、問題発生。
~ python --version
python --version
Python 2.7.16
あれれ、、
これは困った。pythonのコマンドがpyenvのやつで反映されていません。デフォルト(system)のままです。
これの原因はパスが原因でした。pyenvのパスが優先されていませんでした。なので
パスを通します!!!
(パスを通す????となってしまった人は【Pathを通すとは】の記事を読むと完全に理解できます。僕も読み直しました。)
# .pyenvディレクトリのどこにpythonがあるかを確認
~ ls .pyenv/shims
2to3 easy_install idle idle3.8 pip3 pydoc pydoc3.8 python-config python3-config python3.8-config
2to3-3.8 easy_install-3.8 idle3 pip pip3.8 pydoc3 python python3 python3.8 python3.8-gdb.py
#.zshrcに書き込み
~ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> .zshrc
~ echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> .zshrc
#.zshrcの変更を反映
~ source .zshrc
これでパス通すの完了!
シェルがzshじゃなくてbashの人は.zshrc -> .bash_profile
で読み替えてくださいな。
さあこれで行けるはず。
~ python --version
Python 3.8.7
パパパパーンパーパーパッパパーン(FF風)
勝ちました。これでようやくpyenvのインストール完了です。
4. Pipenvのインストール
これだけです。
# インストール
brew install pipenv
# インストールできているかの確認
~ pipenv --help
Usage: pipenv [OPTIONS] COMMAND [ARGS]...
Options:
--where Output project home information.
--venv Output virtualenv information.
--py Output Python interpreter information.
--envs Output Environment Variable options.
--rm Remove the virtualenv.
--bare Minimal output.
--completion Output completion (to be executed by the
shell).
--man Display manpage.
--support Output diagnostic information for use in
GitHub issues.
--site-packages / --no-site-packages
Enable site-packages for the virtualenv.
[env var: PIPENV_SITE_PACKAGES]
--python TEXT Specify which version of Python virtualenv
should use.
--three / --two Use Python 3/2 when creating virtualenv.
--clear Clears caches (pipenv, pip, and pip-tools).
[env var: PIPENV_CLEAR]
-v, --verbose Verbose mode.
--pypi-mirror TEXT Specify a PyPI mirror.
--version Show the version and exit.
-h, --help Show this message and exit.
これで完了。
おしまい、と言いたいところだけどあまりにもあっけないので軽く動作確認。
# サンプルのディレクトリ作成
~ mkdir sample
~ mkdir sample2
~ pyenv versions
system # system = 2.7.16
* 3.8.7
~ cd sample
# 仮想環境の構築・有効化
sample pipenv shell
# 仮想環境内のpythonのバージョン確認
(sample) ➜ sample python -V
Python 3.8.7
# 仮想環境から抜ける
(sample) ➜ sample exit
(sample) ➜ sample cd ../sample2
#
sample2 pyenv local system
sample2 pyenv versions
* system
3.8.7
# 仮想環境の構築・有効化
sample2 pipenv shell --python 2.7.16
# 仮想環境ないのpythonのバージョン確認
(sample2) ➜ sample2 python --version
Python 2.7.16
これでディレクトリごとに異なるpythonのバージョンをもつ仮想環境の構築ができたze
pipenv shell --python 2.7.16
の行は --python 2.7.16
をつけないと、globalのバージョン(3.8.7)で仮想環境が構築されてしまうので必ず記述する事。
また、インストールしていないpythonのバージョンをしていない場合は、pyenvが勝手にインストールしてくれます。優しいね!
あとがき
そもそもHomebrew使わないで環境整える方法もあるらしい!
けれど煩雑そうなのでひとまずこれで。
今回これらの記事を参照しました。圧倒的感謝です。
ではでは
・Pathを通すとは
・PATHを通すために環境変数の設定を理解する (Mac OS X)
・macOSにHomebrewをインストール
・Pyenv, Pipenvを利用したプロジェクト構築