Python の仮想環境の構築
|
Pythonのバージョンアップが積極的に展開されている中で、応用ライブラリの開発はPythonのバージョンアップに対応できていないという現状があります。従って、Pythonだけをバージョンアップすると、使用していたライブラリの利用でエラーが出たりします。こうした問題を回避するために、仮想環境を構築する方法が採用されます。つまり、1台のPC内にPythonの各バージョンに対応した環境、Python3.7 を使用できる世界、Python 3.8 を使用できる世界、というようにバージョンごとの世界を複数構築します。これを仮想環境と呼びます。
Python の仮想環境を構築する方法は複数あります。venv と pyenv が代表的な仮想環境の作成手法だと思います。更に高度なことができる pipenv というツールもあります。これらのツールは、システムPython とは別の Python をインストールするのに便利なツールです。ここでは、venv と pyenv を用いた仮想環境を作成する手続きについて説明します。使用しているPCは MacOS 14.6.1 です。
機械学習などでの Python 利用では、Jupyter Notebook と呼ばれるソフトが必須となってきています。Jupyter Notebookとは、ブラウザ上で動作するプログラムの対話型実行環境です。ノートブックと呼ばれるファイルにpythonなどのプログラムを記述し、実行結果を逐次確認しながら、データ分析を進めることができます。対話型の開発環境であるため、前の実行結果に応じて、次に実行するプログラムや作業を選択できます。Jupyter Notebook のインストールと使用法についても簡単に説明します。
PyCharm という Python のための統合開発環境(IDE)があります。ここではインストールについて簡単に説明します。詳しい説明に興味ある方は、PyCharmの公式サイトの説明を読んでください。また、Microsoft社のプログラミング用テキストエディタ Visual Studio Code (VS Code) を用いて、Pythonのプログラムを開発できます。Visual Studio Code のWebサイト より Download for Mac or Windows をクリックしてVS Codeをダウンロードできますが、ここではVS Codeの説明は省略します。
Last updated: 2022.9.20(first uploaded)
システム Python のインストール |
macOS の場合、Homebrew が利用できます。Windows 、および、Ubuntu などのOSにおける Python のインストールについての説明は、日本語版Python情報のサイトにおいて詳しく説明されていますので、そちらを参照ください。Ubuntu 上での Python の環境構築については、このページも併せて参照ください。
MacOS のターミナルで、以下のコマンドを入力します。
$ brew install python3 $ which python3 $ python3 --version $ pip3 --version
最新版の Python が /usr/local/opt/ にインストールされます。Homebrew を使用しないときは、パスの設定が必要です。
Python を起動します。
$ python3 Python 3.12.5 (main, Aug 6 2024, 19:08:49) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> >>> quit() $
Python 3 を実行するとき、python3 と入力しないと、Python 2 バージョンが起動します。
上記のように、brew install python で Python 3.12 がインストールされます(2024年8月、python3.12 になります)。Tensorflow 用に Python 3.9 以下のバージョンをインストールする必要があります。そのときは、以下のようにします。
$ brew install python@3.9 #python@3.9のインストール $ which python3 $ python3 --version
この場合、Python3.9を実行する python3.9 コマンドは、/usr/local/bin ディレクトリに登録されないので、次のように手動で登録しておきます。macOS の最新バージョンからは、自動で登録されます。
$ ln -s /usr/local/opt/python@3.9/bin/python3.9 /usr/local/bin/python3.9
複数バージョンのPython3をインストールしている場合は、python3.9、python3.10 のように、コマンドファイル名で使い分けるようにします。
$ python3.9 Python 3.9.14 (main, Sep 6 2022, 23:29:09) [Clang 13.1.6 (clang-1316.0.21.2.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
Pyenv による仮想環境の構築 |
Python の仮想環境を構築する方法は複数あります。venv と pyenv が代表的な仮想環境の作成手法だと思います。更に高度なことができる pipenv というツールもあります。この節では、pyenv を用いた仮想環境を作成する手続きについて説明しますします。pyenvは、システムPython とは別の Python をインストールするのに便利なツールです。Ubuntu での仮想環境の構築については、PyenvによるPython環境の構築のページを参照ください。
既にインストールされている pyenv を消去しておきます。
$ rm -rf ~/.pyenv
pyenv のダウンロードと更新をします。仮想環境を ~/.pyenv 以下に作成します。
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv $ cd ~/.pyenv $ git pull
git pull はpyenvのアップデートをするためです。名称 pyenv は任意ですが、通常、この通りにします。Mac では brew コマンドを用いて
$ brew update $ brew install pyenv
としてインストールできます。Windows PC でのインストールについては公式サイトを参照ください。
pyenv がインストールできたら、パス設定をします。bashrc あるいは bash_profile ファイルに以下のパス設定を追加します。
#setting for PATH for pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
ここで、pyenv を使用して、システム Python とは別に Python 3.9.x をインストールします。Tensorflow は Python 3.9 以下をサポートしてます。(2022年9月現在)新しく端末を開いて、システム python のバージョンを確認してみる。
$ which python3 $ python3 --version
インストールできる Python 3.9 のバージョンの確認をします。
$ pyenv install -l | grep 3.9
Python 3.9.4 をインストールします。
$ pyenv install 3.9.4
Python のパッケージが .pyenv/versions/3.9.4 ディレクトリにインストールされます。仮想環境 3.9.4 にpip, setuptools をインストールします。「pyenv shell 3.9.4」コマンドで仮想環境3.9.4に切り替えます。
$ pyenv shell 3.9.4 $ python -m pip install -U pip setuptools
Python 環境の切り替えは次のようなコマンドで行います。
$ pyenv shell system (システムPythonに切り替え) $ pyenv shell 3.9.4 (.pyenvのPython 3.9.4 に切り替え) $ pyenv global 3.9.4 (PC 全体でPython 3.9.4を使用するとき)
デフォルトで pyenv 環境下の Python 3.9.4 を使いたいときは, 次のように設定します。
$ echo 'pyenv shell 3.9.4' >> ~/.bash_profile $ exec $SHELL -l
この設定をすると、ターミナルの起動後に システム Python ではなく、pyenvのpython3.9.4 が起動可能になります。
この状態で使用できるPythonのバージョンを確認します。
$ pyenv versions ---- system * 3.9.4 (set by /Users/koichi/.pyenv/version)
* 印がついたバージョンがデフォルトで使用できる Python になります。
Python 3.9.4 を起動してみよう。pyenv 環境下で Python 3.9.4 に切り替えてから、python を起動します。
$ pyenv shell 3.9.4 $ python Python 3.9.4 (default, May 15 2021, 14:49:04) [Clang 12.0.0 (clang-1200.0.32.29)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> >>> quit() $
上記の手続きでエラーが出るときには(以下のインストールをしなくてもエラーが出ないと思いますが、念のために)以下の依存モジュールをインストールします。Xcode Command Line Tools をインストールしたのち、
$ brew install openssl readline sqlite3 xz zlib tcl-tk
と依存関係のあるモジュールをインストールしてエラーが出ない環境にします。
Ubuntu/Debian/では
$ sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
と依存モジュールをインストールして、pyenv の環境設定でエラーが出ないようにします。
なお、pyenv で Anaconda をインストールすることもできます。以下のようにします。
$ pyenv install -l ... ... anaconda3-5.3.1 ... ... $ pyenv install anaconda3-5.3.1
インストールしたAnaconadのバージョンを確認します。
$ pyenv versions ---- *system 3.9.4 anaconda3-5.3.1
こうして、Anaconda環境下での仮想環境を作成することができます。
Venv を用いた仮想環境の構築 |
MacOS には Python 3.x がプリインストールされているので、venv を用いた 仮想環境を構築するために、
$ python3 -m venv .venv
と入力して、仮想環境を .venv 内に作成します。このコマンドは、指定したディレクトリ ~/.venv に仮想環境を作成します。仮想環境のディレクトリ名は、 .venv 以外でも、好きな名前をつけても大丈夫です。 MacOS においてvenv を用いた 仮想環境を構築する手続きはPython環境構築ガイド: macOS環境のPythonに説明があります。Ubuntu におけるvenv を用いた仮想環境の構築についてはUbuntu 環境の Python を見てください。
作成した仮想環境 .venv ディレクトリにある bin/activate を、. または source コマンドで実行して、仮想環境に切り替えます。
$ source .venv/bin/activate # sh, bash, ksh, or zsh (venv) $
コマンド プロンプトの先頭に (venv) と表示され、仮想環境で実行中であることがわかります。pip をアップグレードするときは、以下のように打ちます。その後、仮想環境用の Python モジュールをインストールします。 pip list は site-packages にインストールされたモジュールの一覧を表示します。
(venv) $ python3 -m pip install --upgrade pip (venv) $ pip list # show packages installed within the virtual environment
仮想環境からシステム Python を使用する通常の状態に切り替えるときは、deactivate コマンドを実行します。
(venv) $ deactivate # don't exit until you're done using TensorFlow $ #このシェルプロンプト状態では .venv にインストールしたPythonは使用できません。
Python のモジュールをインストールするときは、以下のようにします。
$ source .venv/bin/activate (venv)$ python3 -m pip install numpy scipy pillow pydot matplotlib seaborn scikit-learn scikit-image keras pandas opencv-python
機械学習で必要とされる主要なパッケージが仮想環境下にインストールされます。
続けて、Python を起動して、NumPy のバージョンの確認をします。
(venv)$ python3 Python 3.9.4 (default, May 15 2021, 14:49:04) [Clang 12.0.0 (clang-1200.0.32.29)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import numpy as np >>> np.__version__ '1.20.3' >>> quit() (venv)$
複数のバージョンのシステムPython をインストールしている環境では、使用する Python を指定して仮想環境を作成できます。
Python 3.7とPython 3.8がインストールされた環境で、Python 3.7の仮想環境を作成する場合は、python3.7 を使って次のように指定します。ここでは、仮想環境をディレクトリ py37env に作成します。
$ python3.7 -m venv py37env
ここで作成した py37env を使用すると、python 3.7の仮想環境に切り替わります。
以上で、複数種類のPython を使用できる仮想環境が構築できました。
Jupyter Notebookの使い方 |
Jupyter Projectにより開発されているJupyter Notebookは、インタラクティブなシェル環境で、ブラウザ上でソースコードを記述し、実行結果を確認しながらドキュメント、数式、画像を含めて一つの「ノートブック」にまとめて、保存することを可能にします。
JupyterLab は、Project Jupyter の次世代の Web ベースのユーザー・インターフェイスです。その柔軟なインターフェイスにより、ユーザーはデータ サイエンス、科学計算、計算ジャーナリズム、および機械学習のワークフローを構成および調整できます。これにより、Jupyter Notebook、テキスト エディター、ターミナル、カスタムコンポーネントなどのドキュメントやアクティビティを、柔軟で統合された方法で操作できます。それゆえ、JupyterLab は、Jupyter Notebook の作成と操作に使用される次世代インターフェイスの 1 つになっています。
$ python -m pip install --upgrade pip $ python -m pip install jupyterlab jupyter notebook spyder
とコマンドを入力し、Jupyter Notebookをインストールします。Jupyter Notebook だけを使用するときは、 jupyterlab および spyder をインストールする必要はありません。
Jupyter Notebookを起動するためにはTerminal上で
$ jupyter notebook
とコマンドを入力します。以下の様に、jupyter notebookのダッシュボードがデスクトップに表示されます。
右上に位置する[new]をクリックして、[python3]とします。ノートブックが起動しますので、作成してある[file]を開くか、あるいは、セルに新しいコードを記述します。セルの実行は実行したいセルを選択して、「Run」(run cell)をクリックします。
Jupyterは、Cellという箱の中に、Codeや説明(Markdown)を記載していき、順次実行させて動かします。色々なiconが表示されていますが、主要な機能は以下の通りです。
これらの機能は使用してみないとわからないので、以下のPythonコードの実行で順次使ってみてください。
枠取りの付いたセルにコードを書き込んで実行する、あるいは、複数個のセルにスクリプトを書き込んで、上から順番にセルのコードを実行します。この作成した(複数個のセルから構成される)ノートをファイルとして保存します。初期名称はUntitledとなっていますので、必要な名前に変えます。ファイルの拡張子はipynbとなっています。保存記号アイコンをクリックして保存すると、homeディレクトリに保存されます。Webブラウザで作業しているので、[File]-[Download as]とクリックすると、NotebookはPCのDownloadsディレクトリにダウンロードされて保存されます。Jupyter Notebookを終了させるときは、ファイルを保存して、[File]-[Close and Halt]とクリックしてください。右上にある「ログアウト」->「終了」で終了します。また、ターミナルで[Ctrl+c]を入力して、カーネルの作動も終わらせることできます。
jupyter notebook を実際に使用するために、以下の例を使います。このスクリプトを新しいNotebookのセルにコピペして、実行[run cells]してください。
# how to use the index name = ["cheese", "John"] print (name[1],name[0]) x=["spam","spam","spam","spam","spam","egg","and","spam"] print (x[5:7]) print (x[5],x[6],x[7])
John cheese ['egg', 'and'] egg and spam
と表示されたら、実行が正常に作動したので成功です。
jupyterlab を起動するときは、
$ jupyter-lab
と入力します。jupyter-lab の中で Jupyter Notebook機能も使用できます。なお、Spyder というpython用のエディターも利用したいときは、Spyder をインストールしてください。Spyder を使用するときは、ターミナルで spyderと入力する。
$ spyder
このように、エディターとipython カーネルがデスクトップに表示されます。
セルにMarkdown形式記述する方法の説明は、Markdownの規則のページを参照ください。
PyCharm のインストール |
PyCharm は、Python 開発者に幅広い必須ツールを提供する専用の Python 統合開発環境(IDE)であり、緊密に統合されて、生産的な Python、Web、およびデータサイエンス開発のための便利な環境を作成します。
推奨されているOSは最新の 64 ビットバージョンの Windows、macOS、または Linux (たとえば、Debian、Ubuntu、RHEL など)です。PyCharm の Web ページを開き、「ダウンロード」をクリックします。Community(無料かつオープンソース(英語))版をインストールします。MacOSのケースでは、Intel および Apple Silicon プロセッサー用に別々のディスクイメージがあります。対応するインストーラー .dmg をダウンロードします。ダウンロードが開始します。通常のアプリと同様の手続きでインストールできます。
インストールしたら、Pycharmを起動します。PyCharmはデフォルトで日本語表示となっていません。日本語表示にしたい場合は、プラグインを適用します。Welcome 画面または Settings/Preferences から Plugins を開きます。Marketplace の検索で "japan" と入力して、Japanese Language Pack の Install ボタンクリックします。Restart IDE ボタンをクリックして再起動します。
PyCharm で行うすべてのことは、プロジェクトのコンテキスト内で行います。これは、コーディング支援、一括リファクタリング、コーディングスタイルの一貫性などの基礎として機能します。IDE 内でプロジェクトの作業を開始するには、3つのオプションがあります。
PyCharm で Python コードを操作するには、少なくとも 1 つの Python インタープリターを構成する必要があります。インストールした既存の Python インタープリターを使用可能インタープリターとして使用できます。システム Python と異なるインタープリターを設定するときは、以下のようにします。
新規プロジェクトを開き、PyCharm -> Preferences とクリックして、または、「⌘ ,」 を押して IDE 設定を開き、Python インタープリターの項目に行く。「以前構成されていたインタープリター」をクリックして、Pythonインタープリターのウインドウでインタープリターのリストを展開し、すべて表示リンクをクリックします。この中から選択します。Python インタープリターの更新は時間がかかります。PycharmProjects ディレクトリ内にPython インタープリターに必要なモジュールがインストールされます。
プロジェクトを開き、実行したいPythonスクリプトを開きます。
「main」と表示されているウインドウでスクリプトを選択して、右上の実行ボタン「▶️」をクリックすると、スクリプトが実行されます。
Virtualenv、Pipenv、Poetry、または Conda 仮想環境を作成することもできます。仮想環境は、基本インタープリターとインストールされたパッケージで構成されます。プロジェクト設定/環境設定で、いつでも Python インタープリターを切り替えることができます。