Python環境構築 2023.10

Python環境構築 2023.10

火, 10月 17, 2023

概要

  • Pyenv:複数バージョンのPythonの管理する.
  • poetry:各解析や開発のための個別の仮想環境を管理する.
  • OSはmacOS, Linuxを想定している.Windowsの場合はWSL2でLinux環境を用意して利用する.

Pythonの環境を構築する方法は他にも選択肢がある.ニーズや好みに合わせて選択してほしい.

インストール

homebrewでインストールする.

brew install pyenv poetry

Pyenv

複数のバージョンのPythonを切り替えて使いたい場合は多い.

そうした際には複数のPython環境を導入し,自身でパスを設定しても良いが面倒である.

そこで通常はPyenvのような複数のPython環境のインストールや切り替えを支援するツールを利用することになる.

依存ライブラリのインストール

公式ドキュメントに従い,自身の環境に合わせて必要なライブラリをインストールしておく.

Suggested build environment

Pythonのインストール

いくつかのPython環境をインストールしてみよう. 以下では3.11.63.12.0をインストールしているが,使いたいバージョンを設定してほしい.

# インストールできるPython環境の一覧を確認
pyenv install -l

# 3.11.6と3.12.0をインストール
pyenv install 3.11.6 3.12.0

バージョンの切り替え

インストールしたPythonをそれぞれ使ってみよう.

以下では3.11.6XXXというディレクトリ内で, 3.12.0YYYというディレクトリ内でそれぞれ利用することを想定している (別バージョンのPythonを別のプロジェクトで使うイメージ).

# 特定ディレクトリ内で3.11.6を使う
cd XXX
pyenv local 3.11.6
python --version

# 特定ディレクトリ内で3.12.0を使う
cd YYY
pyenv local 3.12.0
python --version

一度,pyenv localコマンドを実行すれば,以降はそのディレクトリ内に移動すれば自動で設定したバージョンが利用される.

# 3.11.6が利用される
cd XXX
python --version

これはpyenv localコマンドの実行時に.python-versionという隠しファイルがディレクトリ内に作成され, そこに設定したバージョンが記載されているためである.

cat .python-version

おまけ

いくつか使うかもしれない機能やTipsを紹介する. 最初はとりあえず無視してもらって良い.

pyenv global

特定のディレクトリ内だけでなく,デフォルトで使いたいバージョンを指定することもできる. pyenv globalコマンドを使う.

pyenv global XXX

XXXは設定したいバージョン.

ディレクトリ内に.python-versionファイルがある場合は,そちらが優先される.

複数バージョンの指定

pyenv localpyenv globalでは複数のバージョンを指定することもできる.

例えば3.10.13miniconda3-latestをグローバルに使うPythonとして設定する場合は以下のようにする.

pyenv global 3.10.13 miniconda3-latest

miniconda3-latestでシェル起動時に自動的にbase環境に入らないようにする

# 仮想環境外に出て(conda deactivate)以下を実行
conda config --set auto_activate_base False

Poetry

プロジェクト毎に使いたいパッケージやそのバージョンは通常異なる.

こうした場合には,他のプロジェクトなどに影響を受けないように切り離されたPython環境(仮想環境)を構築することが一般的である.

例えば,標準ライブラリではvenvが提供されており, 異なる解析環境・開発環境を作成することができる.

Poetryは依存管理からパッケージング(Pythonパッケージを開発して配布可能な形式にまとめる)までを支援するツールである.

ここでは,Poetryを使って各解析や開発のための個別の仮想環境を管理する.

Authorの設定

デフォルトでは,.gitconfiguser情報から名前とメールアドレスを取得してくる. 何も設定していない場合は,必須項目になる.

poetry/src/poetry/console/commands/init.py

ここでは.gitconfigに設定をおこなっておこう.

git config --global user.name "XXX XXX"
git config --global user.email xxx@example.com

XXX XXXxxx@example.comは自身の情報を入力する.

プロジェクトの作成

特定のディレクトリ以下を(同じ仮想環境を使う)一つのプロジェクトとする.

# プロジェクトの作成
cd XXX
poetry init

設定項目についての質問が表示されるので入力していこう.

デフォルトのままで良ければ空欄で良い.

ここではPythonのバージョンだけ3.9以上3.13未満としている.

Poetryにおける(Pythonやパッケージの)バージョン指定方法は公式ドキュメントのDependency specificationを参照してほしい.

This command will guide you through creating your pyproject.toml config.

Package name [XXX]:  
Version [0.1.0]:  
Description []:  
Author [NAME <MAIL>, n to skip]:  
License []:  
Compatible Python versions [^3.11]: >=3.9,<3.13

Would you like to define your main dependencies interactively? (yes/no) [yes] no
Would you like to define your development dependencies interactively? (yes/no) [yes] no
Generated file

ディレクトリ内に,pyproject.tomlという設定ファイルが生成される.

依存パッケージのインストール

プロジェクト内で使うパッケージをインストールしていく.

以下では,NumPy, SciPy, pandas, matplotlib, JupyterLabをインストールしているが,自身のプロジェクトに必要なものを導入しよう.

poetry add numpy scipy pandas matplotlib jupyterlab

これらのパッケージの情報もpyproject.tomlに記載される.

cat pyproject.toml

poetry run

Poetryで作成した仮想環境は自動ではactivateされない.

Poetryで作成した仮想環境上でコマンドを実行したい場合はpoetry runを使う.

poetry run jupyter lab

poetry shell

Poetryで作成した仮想環境内でシェルを立ち上げる場合はpoetry shellを使う.

poetry shell

仮想環境内に導入したパッケージなどを利用できる.

jupyter lab

仮想環境でのPythonバージョンの変更

poetry env useにより仮想環境を切り替えることができる.

例えば,異なるバージョンを利用することが可能.

poetry env use 3.12

仮想環境の一覧はpoetry env listで確認できる.

poetry env list
最終更新日