0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL上でpython環境構築してみた

Posted at

WSL 上で python 環境構築してみた

概要

本記事は、WSL(Windows Subsystem for Linux)上で Python 環境を構築し、mamba を用いて仮想環境を作るまでの過程をまとめたものです。

「環境構築って難しそう...」と思っているあなたへ
確かに最初は複雑に見えますが、一度理解すればそれほど難しくありません。この記事では、なるべく専門用語を避けて、初心者の方でもわかりやすく説明していきます。

目次

  1. はじめに
  2. 基礎知識編
  3. 実践編:セットアップ手順
  4. まとめ

1. はじめに

Python 環境構築から逃げ続けて、研究室配属時に痛い目を見た経験があります 😅

「とりあえず Anaconda をインストールしておけば大丈夫でしょ」という人も多いですが、せっかくなので他の選択肢も知っておくと、いつか役に立つかもしれません。

💡 この記事で学べること

  • Python 環境構築の基本概念
  • mamba を使った効率的な環境管理
  • プロジェクトごとに環境を分ける方法

2. 基礎知識編

2.1 ライブラリ、パッケージ、モジュールって何?

まずは基本的な用語から整理しましょう。料理に例えると分かりやすいです。

モジュール = 一つの食材

  • Python ファイル(.py)一つのこと
  • 例:sample.pyを import して、中の関数を使う
  • 具体例math.py(数学関数が入っている)

パッケージ = 食材セット

  • 複数のモジュールをまとめたフォルダ
  • __init__.pyファイルが入っているのが特徴
  • 具体例requestsパッケージ(HTTP 通信用の複数ファイルをまとめたもの)

ライブラリ = 料理キット全体

  • 複数のパッケージで構成される大きな機能のまとまり
  • 標準ライブラリ:Python と一緒にインストールされる(print()など)
  • 外部ライブラリ:別途インストールが必要(pandasnumpyなど)
ライブラリ(料理キット)
├── 標準ライブラリ(基本調味料)
│   └── print関数、math関数など
└── 外部ライブラリ(特別な食材)
    ├── pandasパッケージ(データ分析セット)
    ├── numpyパッケージ(数値計算セット)
    └── matplotlibパッケージ(グラフ作成セット)

2.2 環境構築で出てくる専門用語

Python 環境構築でよく聞く 4 つの重要な概念を理解しましょう。

パッケージ管理ツール

何をするもの? 外部ライブラリのインストール・アンインストール
代表例: pip
具体的な作業: pip install pandasで pandas をインストール

Python バージョン管理ツール

何をするもの? 複数の Python バージョンを切り替え
代表例: pyenv
なぜ必要? プロジェクトによって Python 3.8 が必要だったり 3.12 が必要だったり

仮想環境管理ツール

何をするもの? プロジェクトごとに独立した環境を作成
代表例: venv
具体例: プロジェクト A では古い pandas、プロジェクト B では新しい pandas を使う

💡 仮想環境って何?

アパートの各部屋のようなものです。それぞれの部屋(環境)は独立していて、部屋 A で何をしても部屋 B には影響しません。

  • メリット:プロジェクト間でライブラリのバージョン衝突を防げる
  • 具体例:機械学習プロジェクト用環境、Web アプリ用環境を分ける

オールインワンツール

conda = 上記 3 つをすべて管理

  • Python 以外(R 言語など)のパッケージも管理可能
  • ただし動作が重い

mamba = conda の高速版

  • C++で書かれているため依存関係の解決が爆速
  • conda と完全互換

Poetry = モダンな管理ツール

  • 最近人気が高まっている
  • 設定ファイルが分かりやすい

2.3 ディストリビューション(セット商品)

ディストリビューション = 必要なツールをまとめたセット商品

名前 特徴 含まれるもの おすすめ度
Anaconda フルセット(重い) conda + Python + 数百のライブラリ ⭐⭐⭐
Miniconda 軽量版 conda + Python のみ ⭐⭐⭐⭐
Miniforge コミュニティ版 conda + mamba + Python ⭐⭐⭐⭐⭐
micromamba 超軽量版 micromamba のみ ⭐⭐⭐⭐

速度比較

conda(Python製)    → 🐌 遅い(依存解決に時間がかかる)
mamba(C++製)      → 🚗 速い
micromamba(C++製) → 🚀 超速い(CLI特化)

💡 初心者へのおすすめ

  • 学習目的:Anaconda(すべて入っているので楽)
  • 実際の開発:Miniforge(軽量で高速)
  • 上級者向け:micromamba(最小構成)

2.4 パッケージの入手先(チャンネル)

チャンネル = パッケージを購入するお店

# Anaconda公式ストア(defaults)から購入
conda install numpy

# コミュニティストア(conda-forge)から購入
conda install -c conda-forge numpy

どちらを選ぶべき?

  • defaults:Anaconda 社が管理、安定している
  • conda-forge:コミュニティが管理、最新版が早い、選択肢が豊富

⚠️ 注意事項

Anaconda = 会社名です。正確には:

  • ✅「Anaconda ディストリビューションをインストールした」
  • ✅「conda で環境管理している」
  • ❌「Anaconda で環境管理している」(会社で管理?)

2.5 依存関係について

用語 意味 具体例
依存関係 A が B を必要とする関係 pandas は numpy が必要
依存管理 必要なライブラリリストを記録 requirements.txt に記載
依存解決 リストを見て自動インストール pip install -r requirements.txt
間接依存 依存先がさらに別のものを依存 pandas→numpy→BLAS

よくある依存の衝突

ライブラリA:「numpy 1.20じゃないと動かない!」
ライブラリB:「numpy 1.25以上が必要!」

→ どちらをインストールしても片方が壊れる 😱

解決方法

  1. 自動解決:mamba/conda に任せる(おすすめ)
  2. 環境分離:プロジェクトごとに仮想環境を作る(確実)

💡 conda/mamba と pip の併用ルール

  1. root で pip を使わない:必ず仮想環境内で
  2. conda/mamba を優先:pip は最後の手段
  3. pip 使用後は環境再作成:依存関係が壊れる可能性

2.6 開発を楽にするツール

Linter(文法チェッカー)

役割:コードの問題を指摘
:「この変数、定義されてないよ」「使われてない関数があるよ」
Python 用:flake8、pylint

Formatter(整形ツール)

役割:コードを綺麗に整える
:インデント統一、余計な空白削除
Python 用:black、autopep8

💡 VSCode との連携

VSCode に Python 拡張機能を入れると、これらのツールが自動で動作します。
コードを保存するたびに自動整形されて便利!

3. 実践編:セットアップ手順

いよいよ実際に Python 環境を構築していきましょう!

3.1 Miniforge のインストール

Miniforge = conda + mamba + Python のセット

# 最新版をダウンロード
wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"

# インストール実行
bash Miniforge3-$(uname)-$(uname -m).sh

# 設定を反映(重要!)
source ~/.bashrc

💡 インストール中の選択肢

  • ライセンス同意:yes
  • インストール場所:デフォルトで OK(Enter キー)
  • 初期化:yes(重要!これを選ばないとコマンドが使えません)

3.2 Micromamba のインストール

micromamba = 超軽量・高速版

# micromambaをダウンロード
curl -L https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba

# 配置場所を作成
mkdir -p ~/micromamba/bin
mv bin/micromamba ~/micromamba/bin/

# コマンドを使えるようにする
echo 'export PATH="$HOME/micromamba/bin:$PATH"' >> ~/.bashrc

# シェル統合(activate/deactivateコマンドが使えるようになる)
echo 'eval "$(micromamba shell hook -s bash)"' >> ~/.bashrc

# 設定を反映
source ~/.bashrc

3.3 仮想環境の作成

mamba を使う場合

# Python 3.11の環境「myenv」を作成
mamba create -n myenv python=3.11 -c conda-forge

# 環境をアクティベート(使用開始)
mamba activate myenv

# 環境から出る
mamba deactivate

micromamba を使う場合

# 同じくPython 3.11環境を作成
micromamba create -n myenv python=3.11 -c conda-forge

# アクティベート
micromamba activate myenv

💡 環境名の付け方のコツ

  • プロジェクト名:data-analysisweb-scraping
  • 用途別:ml-projectdjango-app
  • Python 版別:py311py38

3.4 動作確認

# 現在使用中のPythonの場所を確認
which python
# 出力例:/home/username/miniforge3/envs/myenv/bin/python

# Pythonのバージョンを確認
python --version
# 出力例:Python 3.11.x

# インストール済みパッケージ一覧
mamba list
# または
micromamba list

よくあるトラブルと解決法

問題 原因 解決法
mamba: command not found パスが通っていない source ~/.bashrc実行
システムの Python が表示される 環境がアクティベートできていない mamba activate myenv実行
古いバージョンが表示される 別の環境がアクティブ mamba deactivateしてから再度アクティベート

3.5 環境の共有・再利用

現在の環境を記録

# 仮想環境に入る
mamba activate myenv

# 環境設定をファイルに出力
mamba env export > environment.yml

environment.yml の中身例

name: myenv
channels:
  - conda-forge
dependencies:
  - python=3.11
  - numpy=1.24.3
  - pandas=2.0.2
  - matplotlib=3.7.1

環境を再現する

# 新しいマシンで同じ環境を作成
mamba env create -f environment.yml

# 既存環境を更新
mamba env update -n myenv -f environment.yml

💡 実用的な使い方

  1. チーム開発:environment.yml を Git で共有
  2. 本番環境デプロイ:開発環境と同じ構成を再現
  3. 研究の再現性:実験環境を正確に記録

環境管理の便利コマンド

# 環境一覧を表示
mamba env list

# 環境を削除
mamba env remove -n 環境名

# 特定のパッケージをインストール
mamba install -n myenv numpy pandas

# パッケージを検索
mamba search numpy

4. まとめ

今回学んだこと

  1. 基本概念の理解

    • モジュール、パッケージ、ライブラリの違い
    • 仮想環境の重要性
    • 依存関係の管理
  2. ツールの選択肢

    • Anaconda vs Miniforge vs micromamba
    • 用途に応じた最適な選択
  3. 実践的なスキル

    • 仮想環境の作成・管理
    • 環境の共有・再現方法

初心者の方へのアドバイス

🎯 まずはこれから始めよう

  1. Miniforge をインストール
  2. プロジェクト用の仮想環境を作成
  3. 必要なパッケージを mamba でインストール

📚 次のステップ

  • Poetry 等の他ツールも試してみる
  • Docker 等のコンテナ技術も学習
  • CI/CD での環境管理を理解

⚠️ 注意点

  • 本番環境では必ず仮想環境を使用
  • 環境設定ファイルはバージョン管理で共有
  • 定期的に環境をクリーンアップ

参考リンク


最後に

環境構築は最初こそ複雑に感じますが、一度理解してしまえば開発効率が大幅に向上します。特に複数のプロジェクトを並行して進める場合、仮想環境の使い分けは必須スキルです。

ぜひ実際に手を動かして、自分に合った環境構築方法を見つけてください!

何か質問があれば、コメント欄でお気軽にお声かけください 🙂

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?