Pythonのプロフェッショナル開発環境をUbuntuに構築:VS Code、Poetry、Jupyter

Ubuntu tutorial - IT technology blog
Ubuntu tutorial - IT technology blog

こんにちは!Pythonでのソフトウェア開発、特にUbuntu上で始める場合、プロフェッショナルで整理された作業環境を持つことは非常に重要です。それは作業効率を高めるだけでなく、将来的なライブラリ管理やPythonのバージョンに関する多くの問題を回避するのに役立ちます。

CentOSからUbuntuに切り替えたばかりの頃、パッケージ管理システムに慣れるのに一週間ほどかかりました。`apt`は非常に強力ですが、複数のPythonバージョンやライブラリを異なるプロジェクト間で「競合」させずにインストール・管理することは、本当に頭の痛い問題でした。

ある時、プロジェクトAに誤ってライブラリをインストールしてしまい、順調に動作していたプロジェクトBが突然…エラーを起こしたことを覚えています。それは、両方がシステム共通のPython環境を使用していたためでした。これらの経験を通じて、独立して厳密に管理された開発環境の重要性を痛感しました。

この記事では、「標準的な」ツールセットの構築方法を詳しく解説します。この三点セットは、IDEとしてのVS Code、ライブラリパッケージと仮想環境の管理のためのPoetry、そしてデータ作業や対話型環境を必要とする人のためのJupyterで構成されます。これがあなたのPython開発作業を次のレベルへと引き上げるツールセットになると確信しています。

核心概念:なぜVS Code、Poetry、Jupyterが必要なのか?

実践に入る前に、なぜこの三点セットがプロフェッショナルなPython開発環境にとって理想的な選択肢なのかを探ってみましょう。

VS Code:すべてのプロジェクトの心臓部

Visual Studio Code (VS Code)は単なるコードエディタではありません。膨大な拡張機能のライブラリのおかげで、VS Codeは強力なIDE(統合開発環境)へと容易に進化します。

ほぼすべてのプログラミング言語をサポートし、特にPythonではその能力を存分に発揮します。VS Codeは、統合されたデバッガ、作業ウィンドウ内のターミナル、コードの自動補完、構文チェック(リンティング)など、多くの便利な機能を提供します。Pythonの場合、PythonやPylanceのような拡張機能が、スムーズでプロフェッショナルな開発体験をもたらします。

Poetry:「依存関係地獄」からの解決策

あるプロジェクトではライブラリXのバージョン1.0が必要だが、別のプロジェクトではXのバージョン2.0が要求される、という状況に遭遇したことはありませんか?それこそが「依存関係地獄」(Dependency Hell)です。以前は、仮想環境を作成するためにpipvenvをよく使用していました。

しかし、Poetryはさらに優れています。Poetryは仮想環境を作成するだけでなく、Pythonプロジェクトのライフサイクル全体を管理します。依存関係パッケージを明示的に宣言し、インストール、パッケージ化、ライブラリの公開を支援します。これにより、環境の一貫性と再現性が保証され、同僚とプロジェクトを共有する際に些細なエラーを心配する必要がなくなります。

Jupyter:データとアイデアのためのインタラクティブな遊び場

Jupyter Notebook(またはJupyterLab)は、データサイエンティスト、機械学習エンジニア、あるいはコードを素早く視覚的に試したいすべての人にとって不可欠なツールです。これは、コード、説明テキスト(Markdown)、数式、グラフをすべて単一のインタラクティブなドキュメントに組み合わせることを可能にします。Jupyterを使用すると、個々のコードブロックを実行し、結果を即座に確認し、自分のアイデアを簡単に提示できます。JupyterをVS Codeに統合することで、この体験はさらにシームレスになります。

詳細実践:環境を構築する

さあ、実践に取り掛かりましょう。完全な環境をセットアップするための手順を一つずつ案内します。

1. Ubuntuシステムの準備

まず、Ubuntuシステムが最新の状態であり、必要なツールがすべて揃っていることを確認してください。

sudo apt update
sudo apt upgrade -y
sudo apt install -y 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

これらのパッケージは、Pythonをソースコードからコンパイルするために不可欠であり、複数の異なるPythonバージョンを管理したい場合には重要なステップです。

2. pyenvを使ったPythonバージョンのインストールと管理

UbuntuにはPythonがプリインストールされていますが、異なるプロジェクトのために複数のPythonバージョンを管理するには`pyenv`を使用する方が効率的です。これは、バージョン間の競合を避けるために私がよく使うツールです。

pyenvのインストール:

curl https://pyenv.run | bash

コマンドを実行した後、以下の行をシェル設定ファイル(通常は`~/.bashrc`または`~/.zshrc`)に追加する必要があります。`nano`または`vim`でファイルを開いてください:

export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

ファイルを保存し、その後シェル設定を再読み込みします:

source ~/.bashrc

特定のPythonバージョンのインストール:

例えば、Python 3.10.12をインストールするには:

pyenv install 3.10.12
pyenv global 3.10.12

`pyenv global`コマンドは、このバージョンをシステム全体(`pyenv`のコンテキスト内)のデフォルトとして設定します。確認するには:

python --version

`Python 3.10.12`と表示されるはずです。

3. VS Codeのインストール

UbuntuにVS Codeをインストールする最も簡単な方法はSnapを使用することです:

sudo snap install --classic code

インストール後、アプリケーションメニューからVS Codeを開くか、ターミナルで`code`と入力して起動できます。

必要な拡張機能のインストール:

VS Code内で、拡張機能セクション(左側のサイドバーにある四角いブロックのアイコン)に移動し、以下の拡張機能を検索してインストールしてください:

  • Python (Microsoft): 基本的なPythonサポートを提供します。
  • Pylance (Microsoft): 強力な言語サポート(自動補完、型チェック)を提供します。
  • Jupyter (Microsoft): Jupyter NotebooksおよびJupyterLabをサポートします。

4. Poetryのインストール

Poetryには独自のインストールスクリプトがあり、非常に便利です:

curl -sSL https://install.python-poetry.org | python3 -

インストール後、PoetryをPATH環境変数に追加する必要があります。通常、スクリプトがパスを提案します。`pyenv`と同様に、`~/.bashrc`(または`~/.zshrc`)に追加するだけです:

export PATH="$HOME/.local/bin:$PATH"

その後、`source ~/.bashrc`を実行してPATHを更新します。Poetryのバージョンを確認します:

poetry --version

Share: