#はじめに
よくmacでの環境構築方法を忘れてしまうので,メモ程度で書いておきます.流れとしては新品もしくは初期化状態からの説明を書いていくつもりです.
#環境
MacBook Pro (2020), Catalina 10.15.7
#Homebrewとは
macOS上でパッケージの管理をするシステムのこと.環境構築をする時や,パッケージのインストールなどに使う.
##Xcodeのインストール
まずHomebrewをインストールする際に必要なXcodeからインストールします.以下のコードをTerminalで実行するだけでインストールされます.
$ xcode-select --install
たまに原因不明(おそらくmacOSとXcodeのヴァージョンの不一致)で上手くXcodeをインストールできない時があり,下記のようになるが,,,
$ xcode-select --install
xcode-select: note: install requested for command line developer tools
この場合は↓の記事で解決方法を書いたのでそれを参照してください.
Xcodeをインストールできなかった時の対策
##Homebrewのインストール
以下のコードをTerminalで実行する.
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
###Homebrewのパッケージのインストール
$ brew install pyenv # pyenvパッケージのインストール
$ brew install pipenv # pipenvパッケージのインストール
##pipenvとpyenvでの環境構築
###まずはpythonのインストール
$ pyenv install 3.8.2
3.8.2のところは自分の入れたいpythonのヴァージョンを指定してください.3.9.0だとPytorchが入らなかったので以前のパソコンで使っていた3.8.2を入れました.
###シェルの設定
macOSはCatalinaからデフォルトのシェルはzshになっているので.zprofileに書き込みます(ちなみにbashでもできる).
$ nano ~/.zprofile #.zprofileを開くコマンド
下記の内容をコピペして貼り付ける.
export PYENV_ROOT=${HOME}/.pyenv
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
書き込んだら,control + x → y → returnで戻れる.
次に下のコマンドで先程書き込んだ内容を反映させる.
$ source ~/.zprofile
###ディレクトリを作り仮想環境を作る
とりあえずディレクトリの名前をhogehogeとして作ります.
$ mkdir hogehoge
次にhogehogeに移動する.
$ cd hogehoge
pythonのヴァージョンを指定する.
$ pyenv local 3.8.2 #3.8.2の所は自分の使うpythonのヴァージョンを指定してください
pythonのヴァージョンを確認.
$ pyenv version
3.8.2 (set by /Users/ホームディレクトリ名/hogehoge/.python-version)
python 3.8.2の仮想環境を作る.
$ pipenv --python 3.8.2
Virtualenv already exists!
Removing existing virtualenv...
Warning: the environment variable LANG is not set!
We recommend setting this in ~/.profile (or equivalent) for proper expected behavior.
Creating a virtualenv for this project...
Pipfile: /Users/ホームディレクトリ名/hogehoge/Pipfile
Using /Users/ホームディレクトリ名/.pyenv/versions/3.8.2/bin/python3.8 (3.8.2) to create virtualenv...
⠏ Creating virtual environment...created virtual environment CPython3.8.2.final.0-64 in 547ms
creator CPython3Posix(dest=/Users/ホームディレクトリ名/.local/share/virtualenvs/hogehoge--aKlzNkT, clear=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/ホームディレクトリ名/Library/Application Support/virtualenv)
added seed packages: pip==20.2.4, setuptools==50.3.2, wheel==0.35.1
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
✔ Successfully created virtual environment!
Virtualenv location: /Users/ホームディレクトリ名/.local/share/virtualenvs/hogehoge--aKlzNkT
Creating a Pipfile for this project...
上の様になれば上手くいってます.
###仮想環境に入る
このコマンドで仮想環境に入ります.
$ pipenv shell
Launching subshell in virtual environment...
. /Users/ホームディレクトリ名/.local/share/virtualenvs/hogehoge--aKlzNkT/bin/activate
~/hogehoge: . /Users/ホームディレクトリ名/.local/share/virtualenvs/hogehoge--aKlzNkT/bin/activate
(hogehoge) $
一番下の行の一番左に(hogehoge)があれば仮想環境に入れてます.
ちなみに仮想環境を出るときはexitと打てば出れます.
##pythonのライブラリのインストール
まずnumpyを入れてみる.
(hogehoge) $ pipenv install numpy
Installing numpy...
Adding numpy to Pipfile's [packages]...
✔ Installation Succeeded
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Updated Pipfile.lock (456e4b)!
Installing dependencies from Pipfile.lock (456e4b)...
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
入っているか確認してみます.
(hogehoge) $ cat pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
numpy = "*"
[dev-packages]
[requires]
python_version = "3.8"
packagesのところを見るとnumpyが入ってることを確認.
こーゆー感じでライブラリを入れていきます.
##Jupyter Notebookを使う
###Jupyter Notebookの導入と立ち上げ
さっそくjupyter notebookをインストール.
(hogehoge) $ pipenv install jupyter notebook
Installing jupyter...
Adding jupyter to Pipfile's [packages]...
✔ Installation Succeeded
Installing notebook...
Adding notebook to Pipfile's [packages]...
✔ Installation Succeeded
Pipfile.lock (456e4b) out of date, updating to (b58be4)...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Updated Pipfile.lock (b58be4)!
Installing dependencies from Pipfile.lock (b58be4)...
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
上の様になれば成功です.
次にJupyter Notebnookを立ち上げます.
(hogehoge) $ jupyter notebook
立ち上げるとブラウザが開き下図が表示されます.右側に見えるNewをクリックしPython3を選んでください.
しっかり使えてます.これで一通り環境構築は終わりです.あとは自分の使うライブラリをインストールしていってください.終了のさせかたはググってください笑
#最後に
初心者にもわかりやすく伝わるように書いたつもりです.なにか修正点や追記したほうが良いことなどがあれば教えて下さい.ちなみに自分はJupyter LabよりJupyter Notebook派です(一応どっちも入れてる).理由はコマンドでタブの移動ができるという点だけなんですけど.でもJupyter Notebookは開発が終わり,Jupyter Labに移行すると公式が発表してるらしいのでJupyter Labに切り替えた方が良いのかなと思ったりします.Jupyter Labの入れ方はググれば結構記事が出てくるので,Jupyter Labを使いたい人はそっちを参考にしてください.この記事のpythonのライブラリのインストールまでは手順は一緒で大丈夫です.
環境構築に関しては@gabe-dsに色々教えてもらったり,手伝ってもらったりしたので,こっちのqiitaも読んでみてください.Mac系の便利な記事があります.
#おまけ
###コマンド一覧
$ pyenv install x.x.x # 任意のpythonのヴァージョンを入れる
$ pyenv global x.x.x # system全体のpythonヴァージョンを変更する
$ pyenv local x.x.x # pythonのヴァージョンを指定する
$ pyenv version # ディレクトリで使用しているpythonのヴァージョンを確認する
$ pyenv versions # ディレクトリで使用できるpythonのヴァージョンを確認する
###ライブラリを一気にインストールする
$ pipenv install numpy pandas matplotlib ...
上の様に一括でインストールできるが,Jupyter Notebookの様に間にスペースが入るやつを入れると失敗するので気をつけてください.
###毎回pipenv shellをしないでディレクトリ移動時に自動で仮想環境に入る
.zprofileに下のやつを書き込んでください.すると毎回自動で仮想環境に入ってくれます.
# run pipenv shell automatically
function auto_pipenv_shell {
if [ ! -n "${PIPENV_ACTIVE+1}" ]; then
if [ -f "Pipfile" ] ; then
pipenv shell
fi
fi
}
function cd {
builtin cd "$@"
auto_pipenv_shell
}
auto_pipenv_shell