メインコンテンツまでスキップ

環境を汚さないPython開発環境構築

· 約11分

ただ遊ぶだけなら

プログラミング未経験者の「どの言語から始めたら良いか?」という質問に対して「Python だよ!」という人は少なくないでしょう。 私もおそらくそのうちの一人です。

単純にプログラミングがどんなものかを始めるだけであれば特に煩雑な設定は要らず、Mac であれば以下のような手順で始めることができます。

  1. Finder を開く
  2. サイドバーから Application > Utilities > Terminal.app を選択
  3. python と入力

これであとは Python のリファレンスでも見ながら好きなように遊ぶことができます。 simply start python

なぜこれじゃだめなのか?

しかし、Python を使ってちょっと複雑なプログラムを書く場合、これだけでは以下の点において不十分です。

Python のバージョン管理

Python は様々なバージョンで提供されています(参考)。 例えば、Mac にデフォルトで入っている Python は python 2.7.16 です(上の画像参照)。 システムやプロジェクトによっては違うバージョンを使用したくなることが多々あります。

パッケージ管理

Python では pip (Pip Installs Packages or Pip Installs Python or Preferred Installer Program) と呼ばれるパッケージマネジャーを使って使用するパッケージを管理します。 ただ、このパッケージにもバージョンや依存関係があり、上と同様、異なるプロジェクトでは異なるバージョンやパッケージを使いたくなるものです。

解決策

上の問題を解決するために、即ちプロジェクトごとに仮想環境を立てて PC 本体の環境を汚さないようにしてくれるツールを使用します。

vscode

これは上の話とは逸れますが、もしエディターをまだインストールしていないという場合はインストールしましょう。 特にこだわりがなければ vscode がおすすめです。 インストール手順は別記事で紹介しています。

また、Python の拡張機能も用意されているので適当に入れましょう。 公式のドキュメントも充実しているので是非目を通してください。

公式ドキュメントを大事に (1)

今や「Python 初心者」とググれば膨大な量の情報を手にすることができます。 そしてその多くは本記事のように第三者の解説記事ややってみた系の記事であることが多いです。 もちろん、最初のとっかかりやチュートリアル的な意味合い、または特定の問題解決のためにこのような記事を参考にするのは良いと思います。 ただし、今回の vscode や Python のようなメジャーなツール、言語であれば詳しい公式ドキュメントが用意されています。 その多くは英語ですが、英語力というより知っているかどうか、の話なので臆することなく翻訳機能などを使いながら一次リソースを読むことをお勧めします。 なぜなら、一次リソースである公式ドキュメントは

  • 間違いである可能性が極めて低い
  • 最新の情報を得られる
  • 知りたい情報周辺の知識までも体系立てて理解することができる

などがあるからです。 最初は時間がかかるため、わかりやすい解説記事に飛び付きがちですが、長い目でみたときの理解度は圧倒的に公式ドキュメントに軍配が上がると思います。 本ブログで、できるだけ公式ドキュメントのリンクを貼っているのはそのためです。 (こんなブログ読まずに、さっさと公式ドキュメントに行くのがよろしい。)

pyenv

pyenv は複数の Python のバージョンを簡単に切り替えられるツールです。 Homebrewからインストールできます。

brew update
brew install pyenv

pyenv では PC システム全体でデフォルトとして使用する global と、指定したディレクトリのみで使用する local の二つを利用できます。 基本的には global のバージョンが使われますが、local が指定されているディレクトリ配下では local 優先されます。

# global で使用するバージョンを指定
pyenv global ${VERSION}
# local で使用するバージョンを指定
pyenv local ${VERSION}
# 上のコマンドで working directory に .python-version というファイルが生成される

以下はよく使うコマンドです。

  • pyenv versions: 現在使用しているバージョンおよび使用できるバージョンを表示。
  • pyenv install -l: インストールできるバージョン一覧を表示します。
  • pyenv install ${VERSION}: 指定したバージョンをインストールします。
公式ドキュメントを大事に (2)

pyenv のようなコマンドラインツールにももちろん公式ドキュメントは存在します。 もちろんググっても良いのですが、手っ取り早い方法として --help-h のオプションを付けてみたり、man <COMMAND> (manual) をみてみてください。 ターミナルを離れることなく、パッと使い方を確認できて便利です。

`pyenv -h`
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
--version Display the version of pyenv
commands List all available pyenv commands
exec Run an executable with the selected Python version
global Set or show the global Python version(s)
help Display help for a command
hooks List hook scripts for a given pyenv command
init Configure the shell environment for pyenv
install Install a Python version using python-build
local Set or show the local application-specific Python version(s)
prefix Display prefix for a Python version
rehash Rehash pyenv shims (run this after installing executables)
root Display the root directory where versions and shims are kept
shell Set or show the shell-specific Python version
shims List existing pyenv shims
uninstall Uninstall a specific Python version
version Show the current Python version(s) and its origin
version-file Detect the file that sets the current pyenv version
version-name Show the current Python version
version-origin Explain how the current Python version is set
versions List all Python versions available to pyenv
whence List all Python versions that contain the given executable
which Display the full path to an executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme

venv (virtualenv)

venvは Python 3.3 以降追加された標準モジュールで、仮想環境を構築するのに便利です。 venv は標準モジュールなので python 3.3 以上を使用しているのであれば別途インストールする必要はありません。 もし、python 3.3 より前のバージョンが必要な場合は Virtualenv を利用しましょう。 そもそも、venv は Virtualenv の機能の一部を標準モジュールとして装備したものなので、python 3.3 以降を利用している場合でも venv の代わりに Virtualenv を利用するメリットはあります。 本記事では簡単に説明するため、 venv を使用した方法を紹介します。

と言っても、紹介するコマンドは 3 つだけです。 まず仮想環境を作成します。

python -m venv ${PATH_TO_ENV_NAME}

${PATH_TO_ENV_NAME}はその名の通り環境名へのパスで任意ですが、慣習ではプロジェクトのルートディレクトリに .venv とするのが一般的です。 以下 .venv として記述します。

次に使用する仮想位環境を指定しましょう。

source .venv/bin/activate

この環境下にあればどれだけ pip でインストール・アンインストールしようともシステム全体の Python には全く影響しないので好きなように操作できます。

最後に仮想環境の使用を停止する場合は以下のコマンドを入力します。

deactivate

終わりに

Python は比較的直感的に書けるため、初心者にも非常におすすめの言語です。 一方で、最近の機械学習ブームでもメインの言語として扱われ、Python を使用して少々複雑なプログラムを書くことも少なくありません。 これから Python を使って見ようという人、または現在 Python を使っているけど環境がごっちゃになっている、という人は是非試してみてください。