Python 3 インストール

Python 2.7 は2020年1月1日をもってサポート終了しました(ただし2020年4月に最後のバージョン2.7.18が出ました)。Python 2.8 は出ません

Python 3 のいろいろなインストールの方法を紹介します。

最新のものは Python 3.11 です。PyTorch 2.x が対応しましたので、もう Python 3.11 に移行してもほぼ大丈夫のはずです。

インストールしないで Google Colaboratory で使う方法については実行のページに移しました。

ライブラリ名のタイポ(綴り間違い)を狙ってマルウェアをインストールさせる手口が見つかっています。ライブラリをインストールするコマンド pip install 〜 を打ち込むときは、なるべく、正しい例をコピペしましょう。

公式サイト Python.org からのインストール(Windows)

まず、初心者のかたで、今までどこかで Python をインストールしたけれどうまく設定できていないという場合は、[スタートボタン]→[⚙設定]→[アプリ]で、それっぽいものをアンインストールしてから始めるほうがいいかもしれません。

Python のインストーラを Download Python から最新版をダウンロードし、開きます。「Install Now」をクリックする前に、特に初心者のかたは、インストーラの最初の画面で「Add Python 3.11 to PATH」にチェックを付けるほうが楽だと思います。また、「Install Now」のすぐ下に、インストールされるパスが表示されます。私の場合、C:\Users\okumu\AppData\Local\Programs\Python\Python311 と表示されました。ここが全角だったり文字化けしていたりする場合は、下の説明を見てください。問題なければ「Install Now」をクリックします。ユーザーアカウント制御「このアプリがデバイスに変更を加えることを許可しますか?」が出ますので「はい」をクリックするとインストールが始まります。インストールが無事終われば「Close」をクリックします。

インストールされるパスが全角だったり文字化していたりする場合は、インストーラが起動した画面で「Customize installation」をクリックし、「Next」をクリックし、「Customize install location」の右の「Browse」をクリックし、「PC」→「C:」を選び、「新しいフォルダーの作成」で例えば Python というフォルダを作り、それをインストール場所に設定します。このあたりは実験が不十分なので、情報があれば教えてください。

確認として、Windows PowerShell(あるいは VS Code のターミナル、またはコマンドプロンプト)を立ち上げ、

where.exe python

と打ち込んで、正しい位置にある python コマンドが実行されているかを確認します(コマンドプロンプトなら where python でいいのですが PowerShell ではうまくいかないようです)。うまくいっていれば

C:\Users\ユーザ名\AppData\Local\Programs\Python\Python311\python.exe
C:\Users\ユーザ名\AppData\Local\Microsoft\WindowsApps\python.exe

と出ます(2行目はもともと入っている python コマンドで、後述のように、ストアアプリをダウンロードする画面を開くだけの機能しかありません)。これ以外の python.exe が出ても、それが最初の行でなければ、問題ありません。

同様に pip も確認します。

C:\Users\ユーザ名\AppData\Local\Programs\Python\Python311\Scripts\pip.exe

ほかに IDLE(Integrated Development and Learning Environment)という簡単な統合開発環境がインストールされますが、ここでは使いません。

いろいろなパッケージのインストールは pip コマンドを使って行います。インストールされるパッケージは PyPI にあるものです。

まずは、アップデートの必要なパッケージを、次のコマンドで調べます:

pip list --outdated

最初は pip そのものが古いはずですので、まずこれを

pip install --upgrade pip setuptools

としてアップグレードします。これ以外に必要なパッケージは、その都度インストールします。例:

pip install matplotlib pandas jupyterlab

念のため、Windows PowerShell でパスを確認するには $env:path と打ち込みます。コマンドプロンプトなら path と打ち込みます。

追記:サードパーティのウイルス対策ソフトによっては、Python の動作、特に Jupyter Notebook に支障があるようです。Windows にもともと入っているウイルス対策ソフト Windows Defender なら大丈夫です。

なお、python のパスが設定されていない場合でも使えるように、py.exe というランチャー(起動用プログラム)が C:\Windows の中にインストールされます。こちらを使ってもかまいません。この場合、pip コマンドの代わりに py -m pip のように打ち込みます。

公式サイト Python.org からのインストール(Mac)

Download Python からインストーラをダウンロードし、インストールします。Universal バイナリですので、Intel でも Apple Silicon でも使えます。/Library/Frameworks/Python.framework/Versions/3.11/binpython3 などのバイナリが入ります。また、/usr/local/bin2to3, 2to3-3.11, idle3, idle3.11, pip3, pip3.11, pydoc3, pydoc3.11, python3, python3-config, python3-intel64, python3.11, python3.11-config, python3.11-intel64 というシンボリックリンクができます。

以下では、ホームディレクトリ(例えば私なら /Users/okumura)を ~ と略記しています。

インストールすると、Mac では(bash を使っていれば)~/.bash_profile または(zsh を使っていれば)~/.zprofile の最後にパスが付け加えられます:

PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
export PATH

ターミナルを立ち上げ直すか、あるいはターミナルに(bash なら). ~/.bash_profile、(zsh なら)source ~/.zprofile と打ち込みます。

私は ~/.zshenv に環境変数を書いているのでそちらに移動しました。

以上ができたら、ターミナルに python3 と打ち込んで、次のように表示されるか確認します:

/Library/Frameworks/Python.framework/Versions/3.11/bin/python3

いろいろなパッケージのインストールは pip3 コマンド(または python3 -m pip)を使って行います。インストールされるパッケージは PyPI にあるものです。まずは、一般ユーザで

pip3 list --outdated

と打ち込んで、更新の必要なパッケージがないか確認します。もし例えば pip が更新を要するなら、pip3 install --upgrade pip と打ち込みます。

必要なパッケージをインストールします。例:

pip3 install matplotlib pandas jupyterlab

これだけで、依存関係にあるパッケージ群(anyio appnope argon2-cffi argon2-cffi-bindings asttokens attrs Babel backcall beautifulsoup4 bleach certifi cffi charset-normalizer contourpy cycler debugpy decorator defusedxml entrypoints executing fastjsonschema fonttools idna ipykernel ipython ipython-genutils jedi Jinja2 json5 jsonschema jupyter_client jupyter_core jupyter-server jupyterlab jupyterlab-pygments jupyterlab_server kiwisolver MarkupSafe matplotlib matplotlib-inline mistune nbclassic nbclient nbconvert nbformat nest-asyncio notebook notebook_shim numpy packaging pandas pandocfilters parso pexpect pickleshare Pillow prometheus-client prompt-toolkit psutil ptyprocess pure-eval pycparser Pygments pyparsing pyrsistent python-dateutil pytz pyzmq requests Send2Trash six sniffio soupsieve stack-data terminado tinycss2 tomli tornado traitlets urllib3 wcwidth webencodings websocket-client)がインストールされます。なお、この直後に pip3 list --outdated と打ち込むと、すでに更新が必要なパッケージがありますが、これは新しいほどいいのではなく依存関係があるので、更新の必要はありません。

なお、このとき “Defaulting to user installation because normal site-packages is not writeable” というメッセージが出ますが、これはシステムの site-packages ディレクトリは管理者権限がないと書き込めないので ~/Library/Python/3.11/lib/python/site-packages にインストールしたということを意味します。また、実行ファイルが ~/Library/Python/3.11/bin にインストールされますので、こちらにもパスを通しておきます。具体的には ~/.bash_profile または ~/.zprofile にさきほど追加されたものを

PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:${PATH}"
PATH="${HOME}/Library/Python/3.11/bin:${PATH}"
export PATH

のように書き直して、読み込み直します。

一般的なパッケージは簡単にインストールできるはずですが、ソースコードでしか提供されていないパッケージもたまにあります。そういったものをインストールするには、あらかじめターミナルに xcode-select --install と打ち込んでコマンドラインツールをインストールしておく必要があります。中には、ビルドに gfortran が必要なものもあります。Homebrew なら brew install gcc で入ります(巨大ですし、初心者は入れないほうがいいでしょう)。

ときどき、アップデートの必要なパッケージを、次のコマンドで調べます:

pip3 list --outdated

パッケージをアップデートするには、次のように打ち込みます:

pip install --upgrade パッケージ名をスペースで区切って並べる

https サイトのスクレイピングで証明書エラーになる場合は次のコマンドの管理者権限での実行が必要になるようです:

sudo /Applications/Python\ 3.11/Install\ Certificates.command

Python をアンインストールするには /Library/Frameworks/Python.framework および ~/Library/Python を消します。/usr/local/bin にできたシンボリックリンクも消します。~/.bash_profile の類に追加した PATH も消します。

macOS に最初から入っている Python

macOS では、ターミナルに xcode-select --install と打ち込んでコマンドラインツールをインストールすると、universal binary の /usr/bin/python3 が入ります(macOS Ventura 13.0 時点では Python 3.9.6)。公式サイトの Python と同様に使えるはずです。


これ以降はあまり更新できていませんので、最新の情報でない可能性があります。


Microsoft Store 版 Python

Windows の場合は Microsoft Store からもダウンロードできます(「Python」で検索)。最近の Windows なら、PowerShell かコマンドプロンプトで「python」と打ち込むと、「ストア」が立ち上がって「Python」をインストールする画面が出てきます。インストール場所は C:\Users\ユーザ名\AppData\Local\Microsoft\WindowsApps です。

コマンドは 3 を付けても付けなくても同じです(python3 = python、pip3 = pip)。

Anaconda によるインストール

Anaconda Distribution からご自分の環境に合った最新のインストーラをダウンロードし、インストールします。全部入りなので、たいへん大きいパッケージです。最小限のインストールから始めて少しずつ足していくほうが好みの人は、下にある Miniconda を使うほうがいいでしょう。

アップデートは conda コマンドで行います。具体的な方法は、下の Miniconda のところをご覧ください。

Windows版はユーザ名に全角文字が含まれているとインストールできない(できてもまともに動かない)ようです。どうしてもAnacondaを使わなければならない場合には、ユーザ名を変更する方法をググってお調べください。

Homebrew によるインストール(Mac)

巨大な Xcode はたいていの場合に不要ですが、ターミナルに xcode-select --install と打ち込むとインストールされる “Command Line Tools” は、Mac を使っている開発者にとって必需品です。さらに、Homebrew(ホームブリュー)というパッケージマネージャを使っているかたが多いと思います。この場合、ターミナルに brew install python3 と打ち込めば、簡単に最新の Python が入ります。入るものは Python.org からインストールするものとほぼ同等ですがまったく同じではありません(詳しくは Python — Homebrew Documentation 参照)。

デフォルトでは /usr/local/binpython3pip3 などのコマンドが入ります。また、/usr/local/opt/python@3.9/libexec/bin には python など 3 の付かない名前のシンボリックリンクが入ります。

/usr/local/bin のシンボリックリンクは python.org のものをインストールしたら上書きされてしまいますので、Homebrew のものを主に使う場合は brew link --overwrite python3 と打ち込みます。さらにわけがわからなくなったら brew reinstall python3 で再インストールできます。

この時点での pip は /usr/local/bin/pip3 です。まず pip 自身の更新をします:

pip3 install --upgrade pip

インストールしたパッケージは /usr/local/lib/python3.9/site-packages に入ります。

ApplePersistenceIgnoreState という警告を消すにはターミナルに defaults write org.python.python ApplePersistenceIgnoreState NO と打てばよいみたいです(参照)。

Homebrew による pyenv 経由のインストール(Mac)

brew install pyenv でまず pyenv を入れてから pyenv 経由で各種 Python を入れる方法です。

まず ~/.bash_profile に次を書き込みます:

PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

次のコマンドでインストール可能なバージョンを確認します:

pyenv install --list

例えば Python 3.7.3 をインストールしたいなら

pyenv install 3.7.3

と打ち込みます。pyenv versions でバージョンを確認します。おそらく system3.7.3 があり、デフォルトでは前者になっているので、新しいほうに替えます:

pyenv global 3.7.3
pyenv rehash

python --version でバージョンを確認します。

要らなくなったバージョンは pyenv uninstall 3.7.2 のようにして消せます。

あとは pip で更新・追加インストールします。例:

pip list --outdated
pip install --upgrade pip
pip install matplotlib pandas jupyterlab

Miniconda によるインストール

Miniconda から最新の Python 3.x 版インストーラをダウンロードし、実行します。

Windows の exe 形式のインストーラは、デフォルトの「Just Me(自分だけ)」設定なら管理者権限不要でインストールできます。スタートメニューの「Anaconda」の中に「Anaconda Powershell Prompt」「Anaconda Prompt」が入るので、好きな方を使います。

Mac にも pkg 形式のインストーラがありますが、私は Mac や CentOS で bash installer を使いました:

bash Miniconda3-latest-*-x86_64.sh

まずは ENTER を押せと言ってきます。Enter を押すと、ライセンスを表示して、アクセプトするかと聞いてくるので、yes と答えます。次に、インストールの場所は ~/miniconda3 で良いかと聞いてくるので、それで良ければ Enter を、別の場所(例えば /usr/local/miniconda3)に変えたければその場所を打ち込みます。最後に conda init を実行するかと聞いてくるので、yes と打つと、Mac では ~/.bash_profile の最後に、Linux では ~/.bashrc の最後に、コードが追加されます。シェルを開き直すか ~/.bash何々 を再読み込みすると、Mac なら自動でプロンプトの最初に (base) が出て、基本設定の Miniconda 環境が使えるようになります。Linux では安全のため毎回 conda activate と打たないと Miniconda 環境になりません。元の環境(システムの /usr/bin/python を使う)に戻すには conda deactivate します。Mac でも自動アクティベートをオフにしたければ conda config --set auto_activate_base false と打ち込みます(~/.condarcauto_activate_base: false と書き込まれます)。

パッケージ管理は conda コマンドで行います:

conda update --all
conda list
conda install ipython numpy scipy matplotlib pandas scikit-learn

(Windows)WSL2のUbuntuのPython

WSL2のUbuntuの入れ方については、WindowsのWSL2でVS Codeを使って開発をご覧ください。ちなみに、私はWindows側をほとんど使いませんので、マシンのメモリ16Gのうち12GをUbuntuで使いたいと思いました(デフォルトは半分の8Gになります)。そのため、Windows側のホームディレクトリ(C:\Users\ユーザ名)に .wslconfig というファイルを作り、次のように書き込んでおきました:

[wsl2]
memory=12GB

GPUのあるマシンなら、WindowsとWSL2で使えるNVIDIAドライバを、Windows側でインストールしておきます。

WSL2 の Ubuntu 20.04 には python3 がすでに入っています。念のためアップグレード:

sudo apt update
sudo apt upgrade

python3 --version と打ち込むと Python 3.8.10 と表示されます。pip がないのでインストールします:

sudo apt install python3-pip
pip install --upgrade pip
pip install matplotlib pandas jupyterlab japanize-matplotlib

これで python3ipython が使えます。

Jupyter Lab を使う際には、あらかじめ使いたいブラウザを環境変数で設定しておきます。例:

export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"

また、

jupyter lab --generate-config

と打ち込むと、~/.jupyter/jupyter_lab_config.py という設定ファイルができますので、その中の

# c.ServerApp.use_redirect_file = True

というところを

c.ServerApp.use_redirect_file = False

と書き直します。これで、Ubuntu のシェルで jupyter lab と打ち込めば、Windows 側のブラウザが開いて Jupyter Lab が使えるはずです。

CentOS でのインストール

CentOS 7 の標準の python コマンドは 2.7.x ですが、yum install python3 で /usr/bin/python3 や /usr/bin/pip3 が入ります(3.6.x)。

CentOS 8 では /usr/bin/python3、/usr/bin/pip3 のほうが標準です。もし入っていなければ dnf install python36 で入ります(3.6.x)。

ソースからのインストール

CentOS 7 なら yum install libffi-devel sqlite-devel しておきます。

Download Python からソースのtarballをいただいてきて展開し、ビルドします。次は3.9.2の場合です:

wget wget -N https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz
tar xvJf Python-3.9.2.tar.xz
cd Python-3.9.2
./configure --enable-optimizations
make
make install

python3 --version  # 3.9.2であることを確認
python3 -m pip install --upgrade pip

実行ファイル python3pip などが(デフォルトでは)/usr/local/bin に入りますので、そこにパスを通しておきます。Linux では python コマンドで Python 2 が動くことが想定されていることがあるので、python3 という名前はそのままにしておくほうがよさそうです。

Google Colab を使う

Google Colaboratory については実行のページに移しました。

Azure Notebooks を使う

https://notebooks.azure.com は Google Colab と同じようなサービスです。

Kaggle の notebook (kernel) を使う

Jupyter Notebook が使えます。

Google Colab のようなサーバを立ち上げる

サーバ側に Python をインストールし、jupyter 等を入れておきます。サーバ側で jupyter notebook --generate-config を実行し、生成された ~/.jupyter/jupyter_notebook_config.py を編集してリモートからの接続を許可します。

c.NotebookApp.allow_remote_access = True
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888

パスワードを設定するには、Python で from notebook.auth import passwd; passwd() を実行し、パスワードを打ち込み、表示されるパスワードのハッシュを ~/.jupyter/jupyter_notebook_config.py に記入します:

c.NotebookApp.password = 'sha1:0eced8e273ef:1ef78265e258e76cc0d01e60afcc8df50ea58f8d'

これで、サーバ側で、重要なものの入っていないディレクトリの中で nohup jupyter notebook & を実行し、リモートのブラウザで http://ホスト名:8888 をアクセスします。

パスワードを設定しない場合は、jupyter 起動時に出るトークンを含んだ URL にアクセスします。

このままではローカルユーザの権限ですべてのファイルにアクセスできてしまいますので、不特定多数の人に使ってもらう際には要注意です。

もっと本格的にやるには JupyterHub を立ち上げましょう。

Brython

Brython(Browser Python)はWebブラウザの中で動くPython(つまりJavaScriptで実装したPython)です。自分のWebページ内で動かすことができます。こちらで試せます。

東京書籍の EduTown プログラミング で使っているのも brython です。

その他の学習用環境

Jupyter のサイトで Try it in your browser のボタンをクリックすることでも Jupyter Notebook が試せます。ほかにも、オンラインで種々の言語の実行環境を提供するサービスがいくつかあるようです。CoCalc とか repl.it とか codepad とか ideone とか。

初心者の学習用に作られたオンラインプログラミング環境 ビットアロー(Bit Arrow)では、ブラウザ上で JavaScript、ドリトル、簡易C、DNCL、Python が使えます。Python はブラウザの JavaScript で実行することも、サーバ側の Python 3 を実行することもできます。後者の場合は matplotlib の最小限の機能も使えます。日本語 Python PyPEN も実験中。

PyPy という JavaScript の JIT コンパイラがあり、ブラウザ上で実行できます(お試しサイト pypyjs.org)。グラフィックスはできないようです。

QGIS(オープンソースのGISソフトウェア)にもPythonが含まれています。

スマホや電卓でPython

iOS/iPadOS に iSH という無料のアプリ(中身は Alpine Linux)を入れて

apk add python3 py3-pip

と入力すると python3 コマンドや pip コマンドが使えるようになります。最初はOSが許可を求めてきますので許可を与えます。その間に apk コマンドのほうはタイムアウトしてしまうことが多いため、エラーになったら上記コマンドを再度投入します(矢印キーを上にスワイプすると一つ前のコマンドに戻ります)。うまくいったら python3 と打ち込むと Python が起動します。たいへん便利です。残念ながら日本語は表示できません。

ほかに、iOS用の Pythonista 3 というアプリ(有料)でPythonが使えます。

Carnets - Jupyter というアプリ(無料)は iOS・iPadOS で動く Jupyter notebook 環境です。Python インタープリタも入っており、Numpy、Sympy、Matplotlib、Pandas などが含まれ、なんと OpenCV も使える そうです。

カシオの電卓 fx-CG50 などで MicroPython という Python のサブセットが使えるようです。