WindowsでPython開発環境を構築しよう

主な流れ

以下の流れで環境を構築していきます。

  1. git をインストール
  2. pyenvをインストール
  3. pythonをインストール
  4. venvを使ってプロジェクト作成
  5. pipenvで環境構築

前提環境

この手順の前提はWindows 10です。

WSL(Windows Subsystem for Linux)を使う場合、そのイメージがUbuntuである場合、 Linux(Ubuntu)で環境構築 で環境構築することも可能です。

導入手順

git インストール

https://gitforwindows.org/ よりインストーラーをダウンロードします。

インストーラーを起動し、ウィザードに従ってインストールします。今回は1つを除いて全てデフォルトでインストールしました。特に、gitに関する動作を決める部分については”お好み”の設定にして頂いて構いませんし、後から変更することも可能ですのでとりあえずこのままというスタンスでも良いかと思います。

Nextをクリックします。

Nextをクリックします。

Nextをクリックします。

Nextをクリックします。

Nextをクリックします。

Nextをクリックします。

Nextをクリックします。

Nextをクリックします。

Nextをクリックします。

ここはデフォルトとは異なり、”Use Windows’s default console window”を選択し、Nextをクリックします。

Nextをクリックします。

Nextをクリックします。

Nextをクリックします。

Nextをクリックします。

プログレスバーが表示されるのでインストールが完了するのを待ちます。

インストールが完了しました。Finishをクリックします。

pyenvのインストール

Python環境を複数成立させるためにpyenvを用います。これにより「v3.7とv3.8をインストールして必要に応じて切り替えたい」などといった要件を満たしてくれます。

インストールコマンドは以下の通りです。

PowerShellあるいはGit Bashの場合
git clone https://github.com/pyenv-win/pyenv-win.git "$HOME/.pyenv"

【参考】cmdの場合
cmd.exe: git clone https://github.com/pyenv-win/pyenv-win.git "%USERPROFILE%.pyenv"
*本稿ではPowerShellを使用するため、以降cmdでの例の掲載はありません。

環境変数PYENV と PYENV_HOME、それにPATHをセットします。*PYENV_HOMEは後に登場するpipenvをサポートするためです。

PowerShell を起動し、以下を入力。(特にリアクションはありません)

[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + ".pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + ".pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + ".pyenv\pyenv-win\bin;" + $env:USERPROFILE + ".pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")

PowerShellを再起動して、pyenvのバージョンを確認します。
  pyenv --version

これにてpyenvのインストールは終了です。

pythonをインストール

pyenvのおかげでpyenv経由でPythonをインストールすると、切り替え放題です。

pyenvによってインストール可能な Python をリストします。
pyenv install --list

ここでは3.8.9をインストールしてみました。

pyenv install 3.8.9

pyenvによって複数のPythonをインストールし、切り替えることが可能になっていますが、切り替えられるということは、デフォルトで何を使うかということも考えなければなりません。
pyenvにはgloballocalという設定が可能で、localとはそのディレクトリ配下で実行する場合には指定のバージョンを使用するという設定で、globalはlocal指定がなかった場合に使われるPythonということになります。

pyenv global 3.6.2
cd $HOME/project_a
pyenv local 3.8.9

のような使い分けをします。

その場限りというか、そのシェルだけでという場合はshellを使えばその場限りの切り替えなども可能です。このあとのvenvを使った環境構築などで使うと良いかもしれません。

venvを使ってプロジェクト作成

pyenvのおかげでPythonを複数インストールして複数切り替えられるようになりました。ですがこのままでは、Pythonのバージョン分の環境しかありません。つまりは、3.8.9の環境が2つほしいという要望には応えられません。

はじめてプログラミングに取り組んでいる方はピンとこないかも知れませんが、2つのプロジェクトを同時に抱えていると、プロジェクトAで使用するライブラリaの1.0はライブラリbの1.8を前提としていて、でもプロジェクトBでは最新機能が使いたいためにライブラリbの2.0を使いたいという話になったときに、3.8.9の環境が2つ分必要となるわけです。

これを実現するのがvenvです。venvはPythonの標準に取り入れられた仮想環境を実現するものです。

python -m venv test_project

とすることで、test_projectというディレクトリが作成され、その下には独立したPython環境が構築されます。その環境に切り替えるスクリプトが自動生成されていて、.\Scripts\activate を実行することで切り替えができます。

pipenvで環境構築

またなんちゃらenvかよと思った貴方。そうですね、そろそろうんざりかも知れませんが、これが最後です。ですが、2周目になると「うんざり感」の何倍もの感謝すると思います。

pipenv自体はpipによってインストールします。

pip install pipenv

大体の場合pip自体のバージョンを上げるように警告されるので、それに従ってバージョンを上げたほうがよいでしょう。画面でも見て取れますが、表示された通りのコマンドを実行します。

c:\users\xxx\git\test_project\scripts\python.exe -m pip install --upgrade pip

*xxx の部分はご自身の環境に合わせて変更して下さい。(これをコピペせずに、ご自身の画面ほうからコピペして下さい)

今後、pip install xxxでインストールすることになったときには、pipenv install xxxとすることでpipenv管理下におけて、開発環境→本番環境とか、複数人でプロジェクトをやる場合に便利です。

以上で環境構築は終了です。