【Mac】pyenvを使用したPythonのインストール方法とパッケージの共有化に関して

Python

今回はMacでpyenvを使用してPythonをインストールする方法をご紹介していきます。
またPythonの環境下にインストールされたパッケージを共有化する方法についても記述しておきます。

pyenvではPythonのバージョンを管理(変更)することができます。


(前提)
macOSのパッケージ管理ツールであるHomebrewをインストールしていること



↑登録はもちろん無料です。私は転職で年収72万UPしました。


pyenvインストール

ターミナルをまずは開きます。

今回はzshシェル下でインストールしていきます。

command $ echo $SHELL
/bin/zsh



pyenvのインストール

command $ brew install pyenv

この時点ではまだPythonはインストールされていません。


以下のコマンドを順に実行し、pyenvの環境設定を行います。

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



環境設定を反映させるために以下のコマンドを実行します。

command $ source ~/.zshrc




ここで一度ターミナルを閉じ、再度ターミナルを開き、以下を実行します。

command $ pyenv -v
pyenv 2.3.10

pyenvがインストールされたことが確認できました。


pyenvの良い点は瞬時にPythonをインストールできる点とインストールしたバージョンに切り替えられるところです。これはPythonのバージョンによっては使用できないパッケージなどがあった際にとても便利です。


Pythonインストール

ではこのpyenvを使って、Pythonをインストールしていきます。

まずはインストールできるPythonのバージョンを確認

command $ pyenv install --list
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4.0
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  2.4.6
  2.5.0
  2.5.1
  2.5.2
  2.5.3
  2.5.4
・
・
・



バージョンを指定してPythonをインストール
※今回はバージョン3.10.5

command $ pyenv install 3.10.5



pyenvでインストールしたPythonのバージョンを確認

command $ pyenv versions     
* system (set by /Users/key/.pyenv/version)
  3.10.5

現在は「system」が選択されているので、これをPython 3.10.5に変更

command $ pyenv global 3.10.5



変更後の確認

command $ pyenv versions     
  system
* 3.10.5 (set by /key/migita/.pyenv/version)



Pythonのバージョンを確認

command $ python --version   
Python 3.10.5

これでPython(バージョン3.10.5)をインストールすることができました。


※インストールした特定のPythonのバージョンをアンインストールする方法

command $ pyenv global system
command $ pyenv uninstall 3.10.5
pyenv: remove /Users/key/.pyenv/versions/3.10.5? [y|N] y
pyenv: 3.10.5 uninstalled



パッケージの共有化(requirements.txt)

最後にPythonでインストールしたパッケージを簡単に共有できる方法について紹介しておきます。これは以下の際に重宝する方法かと思います。

  • pyenvで新たにインストールしたPythonのバージョンに別のバージョンでインストールしたパッケージを反映させたい場合
  • 他の方とパッケージの環境を同じにしたい場合


現在のPython 3.10.5にインストールされているパッケージ

command $ pip list             
Package                                           Version
------------------------------------------------- -----------
anyio                                             3.6.2
appnope                                           0.1.3
argon2-cffi                                       21.3.0
argon2-cffi-bindings                              21.2.0
attrs                                             22.2.0
Babel                                             2.11.0
backcall                                          0.2.0
beautifulsoup4                                    4.11.1
bleach                                            5.0.1
certifi                                           2022.12.7
cffi                                              1.15.1
charset-normalizer                                2.1.1
cycler                                            0.11.0
debugpy                                           1.6.5
decorator                                         5.1.1
defusedxml                                        0.7.1
entrypoints                                       0.4
fastjsonschema                                    2.16.2
fonttools                                         4.38.0
idna                                              3.4
importlib-metadata                                6.0.0
importlib-resources                               5.10.2
ipykernel                                         6.16.2
ipython                                           7.34.0
ipython-genutils                                  0.2.0
ipywidgets                                        8.0.4
jedi                                              0.18.2
Jinja2                                            3.1.2
json5                                             0.9.11
jsonschema                                        4.17.3
jupyter                                           1.0.0
jupyter_client                                    7.4.9
jupyter-console                                   6.4.4
jupyter_core                                      4.12.0
jupyter-server                                    1.23.5
jupyterlab                                        3.5.3
jupyterlab-pygments                               0.2.2
jupyterlab_server                                 2.19.0
jupyterlab-widgets                                3.0.5
kiwisolver                                        1.4.4
MarkupSafe                                        2.1.1
matplotlib                                        3.5.3
nest-asyncio                                      1.5.6
notebook                                          6.5.2
notebook_shim                                     0.2.2
numpy                                             1.21.6
opencv-python                                     4.7.0.68
Pillow                                            9.4.0
pip                                               23.0
・
・
・




ここでpyenvコマンドを使用して新たにPython 3.11.0のインストールを行いました。インストール時には標準パッケージ以外のパッケージはインストールされていません。

command $ pip list
Package    Version
---------- -------
pip        20.2.3
setuptools 49.2.1

Python 3.11.0にPython 3.10.5と同じパッケージを一括してインストールしていきます。


パッケージがすでにインストールされているPythonのバージョンに切り替える

command $ pyenv global 3.10.5




切り替え後、以下を実行(Desktopにいること)

command $ pip freeze > requirements.txt

作成されたrequirements.txtファイルにはPython 3.10.5にインストールされたパッケージ名とそのバージョンが記載されています。


これをパッケージがインストールされていないPython 3.11.0に反映させる。(Desktopにいること)

command $ pyenv global 3.11.0
command $ pip install -r requirements.txt

※インストールするパッケージが多い場合は時間が少しかかります。


Python 3.11.0のパッケージ確認

command $ pip list             
Package                                           Version
------------------------------------------------- -----------
anyio                                             3.6.2
appnope                                           0.1.3
argon2-cffi                                       21.3.0
argon2-cffi-bindings                              21.2.0
attrs                                             22.2.0
Babel                                             2.11.0
backcall                                          0.2.0
beautifulsoup4                                    4.11.1
bleach                                            5.0.1
certifi                                           2022.12.7
cffi                                              1.15.1
charset-normalizer                                2.1.1
cycler                                            0.11.0
debugpy                                           1.6.5
decorator                                         5.1.1
defusedxml                                        0.7.1
entrypoints                                       0.4
fastjsonschema                                    2.16.2
fonttools                                         4.38.0
idna                                              3.4
importlib-metadata                                6.0.0
importlib-resources                               5.10.2
ipykernel                                         6.16.2
ipython                                           7.34.0
ipython-genutils                                  0.2.0
ipywidgets                                        8.0.4
jedi                                              0.18.2
Jinja2                                            3.1.2
json5                                             0.9.11
jsonschema                                        4.17.3
jupyter                                           1.0.0
jupyter_client                                    7.4.9
jupyter-console                                   6.4.4
jupyter_core                                      4.12.0
jupyter-server                                    1.23.5
jupyterlab                                        3.5.3
jupyterlab-pygments                               0.2.2
jupyterlab_server                                 2.19.0
jupyterlab-widgets                                3.0.5
kiwisolver                                        1.4.4
MarkupSafe                                        2.1.1
matplotlib                                        3.5.3
nest-asyncio                                      1.5.6
notebook                                          6.5.2
notebook_shim                                     0.2.2
numpy                                             1.21.6
opencv-python                                     4.7.0.68
Pillow                                            9.4.0
pip                                               23.0
・
・
・

新たにインストールしたPython 3.11.0に必要なパッケージがインストールされました。

※Pythonのバージョンを下げて既存のパッケージをインストールする際はPythonのバージョンによりパッケージのインストールができない場合があるので注意してください。

今回は以上です。

コメント

タイトルとURLをコピーしました