Python実行環境ベストプラクティスまとめ

Windows/macOS/LinuxでPython実行環境を構築する際のベストプラクティスを簡潔にまとめます

はじめに

ここでは、各OSでどういったPython実行環境を作るのがベストかを簡潔に記載します。

なのでインストールなどの詳細は説明しません。

あくまで一般的に多くの場合はこれがベストであると思われる内容となります。

Windowsの場合

Python公式サイトから提供されているものをダウンロードしインストールします。

その際、デフォルトでインストールを行い、PATH環境変数は設定しません。

Pythonを実行するときは「py.exe」を使用します。

これは公式サイトにも説明されていますが、Windows版で提供されているpyコマンドは、オプションなしに実行するとそのWindowsにインストールされている最新のPythonを探して実行します。

異なったバージョンのPythonを複数インストールでき、オプションでバージョンを指定して実行することも可能です。

例)
C:\> py -3.7

一般的に外部パッケージ(ライブラリ)をインストールしてPythonを実行する際は、仮想環境を作成してからパッケージをインストールします。

仮想環境を作成するときにPythonのバージョンを指定することもできます。

例)
C:\> py -3.7 -m venv venv37

こうやって複数のPythonバージョンやパッケージをコントロールします。

また、Anacondaを並行してインストールすることもできます。

このときAnacondaもデフォルトでインストールし、PATH環境変数は設定しません。

Anacondaを使用するときは、提供されているAnacondaのPowerShellかコマンドプロンプトを使います。

仮想環境の作成とパッケージインストールもcondaコマンドを使います。

condaコマンドでインストールできないパッケージにおいてはpipを利用します。

この場合はcondaで仮想環境を作成したときは利用できないので注意が必要です。

これでWindowsに複数の異なったPythonをインストールしても目的のPythonを実行できます。

Linuxの場合

LinuxはデフォルトでPythonが含まれていますが、pyenvを使ってPythonをインストールします。

pyenvを別途インストールしますが、ここでは詳細は掲載しません。

以下の記事を参照してください。

ここでも外部パッケージをインストールするときは、仮想環境を作成してからになります。

pyenvで利用するPythonバージョンを切り替えてから、仮想環境を作成しパッケージをインストールします。

例)
$ pyenv versions
system
*3.9.7
3.8.12
$ pyenv global 3.8.12
$ python -m venv venv38
$ python -m pip install requests

これでLinuxにある複数のPythonを切り替えながら実行できます。

macOSの場合

基本的にはLinuxと同じでpyenvを使用して複数のPythonバージョンを管理してPython実行環境を作るのがおすすめです。Macではコマンドツール類はパッケージを管理できるHomebrewを利用するのが一般的です。

Homebrew URL(https://brew.sh/index_ja)

現在(2022/5時点)ではApple Silicon(M1)搭載のMacへ対応しています。

ページに書かれているインストールのシェルスクリプトを実行するとIntelかM1かを識別してインストールしてくれます。

ただ、M1のMacにインストールしたときは以下の内容を.zshrcもしくは.bash_profileに記述してください。

eval "$(/opt/homebrew/bin/brew shellenv)"

Homebrewのインストールが完了したらbrewコマンドでpyenvをインストールします。

$ brew install pyenv

あとはLinuxと同じくpyenvを使ってPythonをインストールし、仮想環境を作成して外部パッケージをインストールします。

これでmacOSにある複数のPythonを切り替えながら実行できます。

1つ注意点として、Homebrew環境にPythonをインストールするとき(pyenvを使う場合も)に、PythonでGUIのアプリを作成するのであれば、Homebrewにtcl-tkをインストールしてからPythonをインストールしたほうがいいです。

Homebrewインストール時に、すでにtcl-tkはインストールされているように見えますが、正しく動作しないときもあるようなのでインストールしておきます。

$ brew install tcl-tk

インストール後に以下のように表示されるので、場合によっては以下の記述を.zhrcもしくは.bash_profileに記述します。

If you need to have tcl-tk first in your PATH, run:
  echo 'export PATH="/usr/local/opt/tcl-tk/bin:$PATH"' >> /Users/codeaid/.bash_profile

For compilers to find tcl-tk you may need to set:
  export LDFLAGS="-L/usr/local/opt/tcl-tk/lib"
  export CPPFLAGS="-I/usr/local/opt/tcl-tk/include"

For pkg-config to find tcl-tk you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/tcl-tk/lib/pkgconfig"

ほとんどの場合は記述しなくても動作するようですが、必要に応じて記述してください。