0
1

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.

ゼロからPython環境をHomebrew、pyenv経由で構築(MacOS)

Last updated at Posted at 2022-07-30

ゼロからPython環境をHomebrew、pyenv経由で構築

大学入学時に購入して何もわからず環境構築したMacBook Pro。
何かがおかしいと気づきつつ無理矢理使ってきましたが本当に限界を感じたので一旦出荷状態まで戻して全てを最初からやり直します。
この記事ではPython環境をHomebrew、pyenv経由で構築していきたいと思います。
一連の投稿のハブになる記事はこちら

参考にさせていただいた記事
MacOSとHomebrewとpyenvで快適python環境を。
macOS+zsh環境にpyenvをインストールする
lzmaが入っていないって怒られるwarningを解消する

環境

MacBook Pro (13-inch, 2018)
macOS Monterey Version 12.5
メモリ intel Core i5
zsh 5.8.1 (x86_64-apple-darwin21.0)

経緯

基本的にはgoogle ColaboratoryやDockerを使うもののなんだかんだ手軽に使えるようにローカルにもpythonを入れておきたいと思い環境構築。
pythonのバージョンを切り替えたいこともありそうなのと昔てきとうにpythonを入れたらpython2系列と競合したりいつの間にかpython3系列がいろんなところに存在したトラウマがあるのでpyenv経由でインストール。(どうも今は2系列がpreinstallされてないみたいなので競合したりしない気もする)

Xcodeをインストール

既に完了している場合はスキップしてください
Xcodeを入れとくと色々なライブラリーが使えるらしいのでXcodeをインストール。
インストールはAppleStoreからできる。
そこそこ時間がかかるので進んでいるか不安になりますが多分大丈夫です。

終わったらComand Line Toolをダウンロードしていきます。
terminal(わからない人はcomand+spaceを押してterminalと検索)を開いて下のコマンドを実行。

terminal.app
user@host $ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates

既に入っているらしい。(入っていない場合があるのかは知らない。入っていなければ指示に従って入れてください)
次にEULAに同意する。

terminal.app
user@host $ xcode-select -license

spaceを押して進めて大丈夫そうならagreeと入力してEnterを押しましょう。

最後にインストールされているのを確認します。

terminal.app
user@host $ xcode-select --print-path 
/Applications/Xcode.app/Contents/Developer

こんな感じでpathが出力されればOKです。
確認してないですがdeveloper toolsのインストールを求められる場合があるらしいので指示に従ってインストールしましょう。
(私は別のものをいじっている時に求められて入れていたので必要なかった?)

Homebrewのインストール

既に完了している場合はスキップしてください
次はHomebrewをインストールします。
Homebew公式に記載されているコマンドを入力してインストールします。(パスワードを求められます)

terminal.app
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

必要に応じて.zshrcファイルを作成してpathとかを書き込んでください。

Homebrewのインストールを確認しましょう。

terminal.app
user@host $ brew doctor
Already Up-to-date.

上のようにAlready Up-to-dateと出ればOKです。warnigが出た場合は適時解決しましょう。
私の場合はwarningが出て下のコマンドの実行を求められました。

terminal.app
user@host $softwareupdate --all --install --force

pyenvのインストール

次はpyenvをインストールしていきます。
pyenvを使うことで複数のバージョンのpythonを使い分けながら開発することができます。
必要に応じてpyenvのgithubを参照しましょう。

terminalからHomebrewを使ってインストールしていきます。

terminal.app
user@host $ brew install pyenv

ここで~/.zshrcに書き込んでいきます。(/zprofileに書き込むパターンもあり、詳しくは適時調べてください)
まずは.zshrcが存在するか確認しましょう。

terminal.app
user@host $la -a

無い場合は作ります。(ある人はスキップ)

terminal.app
user@host $touch .zshrc

次にここに設定を色々書き込みます。

terminal.app
user@host $echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
user@host $echo 'command -v pyenv >/dev/null || exprt PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
user@host $echo 'eval "$(pyenv init -)"' >> ~/.zshrc

設定ファイルを読み込むためにターミナルを再起動するかコマンドを実行します。

terminal.app
user@host $source .zshrc

最後にpyenvが無事インストールされていることを確認してください。

terminal.app
user@host $pyenv -v
pyenv 2.3.2

pythonをインストールする

いよいよpythonをインストールしていきます。
まずはインストール可能なバージョン一覧を確認しましょう。

terminal.app
user@host $pyenv install --list

いっぱい出てくると思うのでその中からインストールするバージョンを決めましょう。
今回はPython 3.10.5をインストールします。
インストールの前に後のwarningに対応します(私は一回入れ直しました)

terminal.app
user@host $brew install xz

気を取り直してインストール。

terminal.app
user@host $pyenv install 3.10.5

バージョンを切り替えてインストールしたpythonを使えるようにします。

terminal.app
#ユーザ全体で設定
user@host $pyenv global 3.10.5
#フォルダ内で設定
user@host $pyenv local 3.10.5

pythonのバージョンが無事切り替わっていることを確認。

terminal.app
python -V
Python 3.10.5

(おまけ)pyenvで現在設定されているpythonと設定できるpythonの確認

terminal
user@host $pyenv versions
  system
* 3.10.5 (set by /Users/takayoshi/.pyenv/version)

終わりに

今回はHomebre、pyenvを経由してpythonをインストールしました。
誤字等あったらご指摘ください。
記事を参考にさせていただいた方々本当にありがとうございます。

0
1
0

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?