Python ガジェット部 研究部

【初心者向け】Windowsでの素のPython環境構築【Pythonランチャー+venv】

Windows環境下での素のPython環境構築の方法。

Windowsでの環境構築は初めてで、恥ずかしながら初めてランチャーという存在を知ったので、その備忘も込めて。

Microsoft StoreからでもPythonのインストールはできるが、こちらはランチャーが使えないとかなんとか。

Pythonの公式サイトから、インストーラを拾ってきてインストールする方法を紹介していくよ。

まずはPythonのエイリアスを切る。

インストールする前に、一作業。

何もインストールしない状態でコマンドプロンプトを開き、「python」と打つと、Microsoft Storeが開く。

「where python」とすると、、

windowsには、python入ってないくせに「python.exe」が入っているのだ。そしてご丁寧にエイリアスが設定されている。

実は、このままpythonの公式サイトで拾ったインストーラを実行すると、インストール後恒例の「python -V」で「Python」としか返ってこない現象が発生する

初心者だったらここでインストール挫折しそうである。(本来は「Python 3.〇.〇」のように、バージョンが返ってくるはず)

何も返ってこないならまだしも、「Python」とだけ返ってくるのは不可解極まりないように見える。

そこでこれを未然に防ぐために、「アプリ実行エイリアス」の設定を変更する。

から

pythonのインストーラ2つを「オフ」にしておきましょう。

この状態でもう一度コマンドプロンプトで「python」と打つと。。(コマンドプロンプトを開きなおした方がいいかもしれません)

エイリアスを切ることができましたね。

Pythonインストーラを拾ってきてインストール!

Python公式サイトに行ってとりあえず、インストーラを拾ってこよう!

最新版は「Download」から、「Download Python 〇.〇.〇」をクリック。

あとから、別のバージョン入れれるので、とりあえず最新版入れとけばいいんじゃないだろうか。

あとはダウンロードした、exeファイルを実行する。

「Install Now」をクリックすれば良いのだが、よく他のサイトで見るのは「Add Python 〇.〇 to PATH」にチェックを入れろというもの。

複数Pythonバージョンを使わずに、一つのバージョンだけで良く、「Python」コマンドを使うならチェックを入れなきゃいけない。

そうじゃないなら正直入れても入れなくてもいいのだが、後述のpythonランチャーを使う際混乱しないためには、チェック入れない方が良いかも。

(入れてもあとから簡単にPATHは消せる。)

PATHの消し方を紹介するためにも、今回はチャックを入れてインストールした。

無事インストール成功したので、「close」。コマンドプロンプトを開きなおして。。

上記 「Add Python 〇.〇 to PATH」 でチェックを入れたら「python -V」でも、

チェック入れてない場合は「py -V」でバージョンを確認できる。

「python」と「py」の違いは次で。

Pythonランチャーでバージョン管理。

さきから出てきてるpythonランチャーとは、インストールされてる複数のバージョンのpythonを管理してくれるツールなのだ。

先の「py」コマンドは、このpythonランチャー(py.exe)を呼び出している。

何も指示しない場合、通常 python ランチャーはインストールされているうち最新バージョンのpythonを呼び出してくれる。

対して「python」コマンドはインストールしたバージョンのpython.exeを直接呼び出すようにPATHが設定されている。( インストール時「Add Python 〇.〇 to PATH」 にチェック入れた場合)

これだけだとわかりにくいので、少し古いバージョンのPythonを実際にインストールしてみましょう。

ちなみに、ここでバージョン管理とは、マイナーバージョンの切替のことを言います。

python3.9 とか 3.8 というのがマイナーバージョンです。

python3.8.10 とか、3.8.9 というのをマイクロバージョンといいます。

マイナーバージョン間は比較的大きな変更が加えられています。

簡潔にいうと、3.8 で動いていたはずのプログラムが 3.9 では動かない、またはライブラリが対応してないなんてことがあり得ます。

拾ってきたプログラムが3.7で動作するものなら、なるべく3.7の環境が欲しいわけです。(込み入ったものでなければ、別バージョンで動くものも多いですが)

なので、複数のバージョンが管理できる環境が欲しいのです。

ちなみにマイクロバージョンは微小な変更が加えられたものであり、互換性があり、マイクロバージョン間であれば基本的にプログラムは問題なく動きます。

(例えば、3.8.8で動作するプログラムなら、3.8.10でも動く)

さらに、python3 や python2 はメジャーバージョンといい、滅多にアップデートされることはありません。

pythonランチャーでは 2系も管理できますが、今からpythonを勉強する人はわざわざ 2 系はやらなくていいでしょう。

前置きが長くなりましたが、ここから、今までのWindowsでのPythonのリリースが見れます。

先ほどインストールしたもの以外のマイナーバージョンのPythonのインストーラを適当に持ってきましょう。(なるべく新しいマイクロバージョンで)

基本的に、「Windows installer(〇〇bit)」と書いてあるものか、「Windows x86-〇〇 executable installer」と書いてあるものをダウンロードしてくれば良いです。(〇〇はご自身のPCのビット数)

ここでは、先ほど3.9をインストールしたので、3.8と3.7のうちインストーラをダウンロードしました。

流れは一緒です。ダウンロードしてきたインストーラを何も考えずに「Install Now」です。

さあ、ここからPythonランチャーの便利なとこです。

「py --list」で、現在インストールされているpythonをすべて見ることができます。

とくになにも考えずに、インストーラを複数走らせましたが、このように認識されています。

米印はデフォルトで走るPythonのバージョンです。つまり、一番最新のバージョンが実行されます。

では、どのように他のバージョンで実行させるのでしょうか。

バージョンを指定して実行

import sys
print(sys.version)

例えば、こんなプログラムを実行する。(test.py)

これは、現在のPythonのバージョンをプリントするというプログラム。これでどのバージョンのプログラムが動いてるのか明示的に示される。

コマンド引数でバージョン指定

「py -〇.〇」とすることで、実行するバージョンを指定でき、呼び出せる。

指定しなければデフォルトの最新のバージョンが実行される。(ここでは、3.9が最新)

上記の「test.py」を各バージョン指定して実行すると。。

こんな感じ。ちゃんと呼び出されている。

ファイルごとにバージョン指定

上記のように、コマンドで指定してもよいが、何を指定すればいいのかわからなくなりかねない。

そこで、あらかじめファイルに実行するバージョンを指定できる。

#!python3.8
import sys
print(sys.version)

先の「test.py」の一行目に「#!python〇.〇」と入れることで、バージョン指定できる。

上記のように、3.8を指定すると。。

このように、コマンドで指定せずとも、最新の3.9ではなく、3.8で動いてくれる。

バージョンを指定した仮想環境構築(ランチャー+venv)

venvとは、プロジェクトごとにpipでインストールしたライブラリの導入を独立させることができるものだ。

作りたいプログラムやプロジェクトごとに必要なものや、バージョンも変わってくる。

そこで、それらをフォルダごとに切り分ける方法がある。

例えば、「testenv」というフォルダを作り、そこにpython3.7での環境を構築するとする。

「py -3.7 -m venv [venvname]」で、デフォルトでpython3.7の仮想環境が構築できる。このとき[venvname]のとこは好きな名前でいいのだが、すでにフォルダで環境の区別はつくので、一義的に [venvname] も「venv」とすることをお勧めする。エイリアス設定などの恩恵が受けれる。(以下のエイリアス設定記事参照)

「testenv」というフォルダを作って移動し、そこで 「py -3.7 -m venv venv」を実行します。

少し待つと、「testenv」下に「venv」というフォルダが出来ています。

作った環境をアクティベートするには、「.\venv\Scripts\activate」と入力します。

すると、仮想環境が立ち上がります。左側に(venv)とあれば、仮想環境が実行中ということになります。

この仮想環境下では、デフォルトのバージョンが作ったときに指定したバージョンになります。(ここだと3.7)

なので、「py -V」や「python -V」と打てば(仮想環境下では、python のPATHを通してなくとも、pythonコマンドが効きます)、作成時指定したバージョンが返ってきます。

この仮想環境を立ち上げた状態で、pipなどでパッケージをインストールすれば、好きなバージョンで他と独立した環境が構築できます。

ちなみに仮想環境は「deactivate」で抜け出せます。

【補足】PATHの削除の仕方

pythonランチャーがめちゃくちゃ便利なものだということが分かって頂けたでしょうか。

py と python があると、バージョンを混在してしまう可能性が出てきます。

基本的に py で事足りるので、pythonコマンドが使えることでpipなどのバージョン管理で混乱することが考えられます。

なので、もう、pythonコマンドはそもそも効かないようにした方が混乱を避けられます。(なのでインストーラもデフォルトで、PATHをオフにしているのでしょう)

pythonのPATHを消すには、まず、「環境変数を編集」を立ち上げます。

すると、「ユーザ環境変数」の「Path」にpythonっぽいものがあるかと思います。

これを「編集」より、pythonのフォルダを指しているPATHを削除していきます。(pathはpython関連以外のpathも含まれているので、pythonが関係ありそうなものだけ削除してください)

これで、「OK」をして、環境変数の編集を閉じ、再度コマンドプロンプトを開きなおせば、変更が反映されているかと思います。

-Python, ガジェット部, 研究部