Kodrill

Python の環境とコーディング規約

Python 3 エンジニア認定実践試験

pip・venv・uv・PEP 8・Ruff

問題数
12 問
合格ライン
70%
この分野の要点を読む6 章・約 8 分。実行して確かめたコード例と、試験でよくある引っかけをまとめています

ログインなしで試す

無料の 5 問を、1問ごとに正誤と解説を見ながら解けます。解答は保存されません。

5 問を試す

無料登録して学習を記録する

学習履歴・ダッシュボード・ブックマーク・模試モードが使えます。

★ 残り 7 問はプレミアム会員限定です

無料プランでは先頭 5 問まで解けます。プレミアムなら全問題・苦手問題の復習・広告非表示が使えます。
料金プランを見る

問題と解説を見る (無料)

登録しなくても、次の5問は問題文と解説をそのまま読めます。

Python の環境とコーディング規約の要点

内容の確認日: 2026-10-04

この分野は『Python実践レシピ』の第 1 章 (Python の環境・1 問) と第 2 章 (コーディング規約・2 問) に対応します。コードの実行結果ではなく、ツールの使い方や規約の内容を問う知識問題が中心です。

改訂新版では、第 1 章にパッケージマネージャー uv、第 2 章に静的コード解析ツール Ruff の節が加わりました。どちらも現在の Python 開発でよく使われるツールです。

pip によるパッケージの管理

pip は、PyPI (Python Package Index) などからパッケージをインストールするツールです。いま使っている Python に対応する pip を確実に使うため、python -m pip の形で実行するのがおすすめです。

・pip install パッケージ: インストール。"requests==2.32.3"・">=2.0"・"~=2.32" のようにバージョンを指定できる ・pip install -U パッケージ: 最新版に更新 ・pip install -r requirements.txt: ファイルに書かれたパッケージをまとめてインストール ・pip freeze: インストール済みのパッケージをバージョン付きで出力 (> requirements.txt で保存) ・pip list・pip show パッケージ: 一覧・詳細 ・pip uninstall パッケージ: 削除。依存しているパッケージは残る ・pip install -e .: 編集可能モード。ソースの変更が再インストールなしで反映される

venv による仮想環境

仮想環境は、プロジェクトごとに独立したパッケージのインストール先を作る仕組みです。プロジェクトごとに違うバージョンのパッケージを使え、システム全体の Python を汚しません。

標準ライブラリの venv で作り、有効にしてから pip でインストールします。

code
python -m venv .venv          # 仮想環境を作るsource .venv/bin/activate     # 有効にする (macOS・Linux).venv\Scripts\activate        # 有効にする (Windows)python -m pip install requestsdeactivate                    # 無効にする

仮想環境のディレクトリは中に絶対パスなどを含み、ほかの環境に移すことを想定していないので、Git などのバージョン管理には含めず、依存パッケージの一覧から作り直します。プログラムからは、sys.prefix (いまの環境) と sys.base_prefix (元の Python) が異なるかどうかで、仮想環境の中かを判定できます。

Python
import sys​in_venv = sys.prefix != sys.base_prefixprint("仮想環境の中" if in_venv else "仮想環境の外")

パッケージマネージャー uv

uv は Astral 社が Rust で開発している、高速なパッケージ・プロジェクト管理ツールです。標準ライブラリではないので、別途インストールします。pip・venv・pyenv (Python のバージョン管理) などの役割を 1 つでこなせます。

・uv init: プロジェクト (pyproject.toml など) を作る ・uv add パッケージ: 依存を追加し、pyproject.toml とロックファイル uv.lock を更新する。uv remove で削除 ・uv sync: ロックファイルのとおりに仮想環境 (.venv) をそろえる ・uv run スクリプト: 必要に応じて環境を作成・同期してから実行する ・uv python install 3.14: Python 本体をインストールして使い分ける ・uvx ツール (uv tool run): ツールを一時的な環境で実行する

pyproject.toml には「requests>=2.32」のような依存の条件を書き、ロックファイルには、間接的な依存も含めて実際に選ばれた正確なバージョンを記録します。ロックファイルをバージョン管理に含めて共有すると、開発者の手元・CI・本番で同じ構成を再現できます。

PEP 8 (コーディング規約)

PEP 8 は Python 標準のスタイルガイドです。主な内容は次のとおりです。

・インデントは空白 4 つ。1 行は最大 79 文字 (docstring やコメントは 72 文字) ・トップレベルの関数・クラスの間は 2 行、クラス内のメソッドの間は 1 行空ける ・import はファイルの先頭に、1 行に 1 モジュールずつ書き、標準ライブラリ → サードパーティ → 自分のモジュールの順にグループ分けする ・命名: 関数・変数・メソッドは snake_case、クラスは CapWords、定数は UPPER_CASE、モジュールは短い小文字。メソッドの第 1 引数は self・cls ・None との比較は is / is not。真偽値を == True で比べない。空のシーケンスは if not items: で判定する ・かっこの内側に空白を入れない。キーワード引数の既定値の = の前後に空白を入れない (型ヒントがあるときは入れる)

Python
import osimport sys​import requests​MAX_RETRY = 3​​class HttpClient:    def get(self, url: str, timeout: int = 10) -> dict | None:        if not url:            return None        return {"url": url}​​def main(verbose=False):    client = HttpClient()    if client.get("/") is not None:        print(sys.argv, os.sep)

静的コード解析ツール Ruff

Ruff は Astral 社が Rust で開発している、高速なリンター兼フォーマッターです。flake8 (リンター)・isort (import の並べ替え)・Black (フォーマッター) などの役割を 1 つでこなせます。コードは実行せず、静的に解析します。

・ruff check: 未使用の import・未定義の名前・PEP 8 の違反などを検出する。ルールは F401 (未使用の import) のようなコードで表す ・ruff check --fix: 自動で修正できるものを直す ・ruff format: コードを決まった形式に整形する (--check で変更せず確認だけ)

設定は pyproject.toml の [tool.ruff] テーブル (リンターは [tool.ruff.lint]) に書きます。select で有効にするルールを、コードの接頭辞で指定します (E・W は pycodestyle、F は Pyflakes、I は isort 相当)。既定では F と E の一部が有効です。

code
[tool.ruff]line-length = 88[tool.ruff.lint]select = ["E", "F", "I"]

試験でよくある引っかけ

  • pip uninstall と依存パッケージ

    指定したパッケージだけが削除され、依存していたパッケージは残ります。

  • 仮想環境はコピーして使わない

    仮想環境のディレクトリはバージョン管理に含めず、依存の一覧から作り直します。

  • uv は標準ライブラリではない

    venv は標準ライブラリですが、uv と Ruff は別途インストールするツールです。

  • pyproject.toml とロックファイル

    pyproject.toml は依存の条件、ロックファイルは実際に選ばれた正確なバージョンを記録します。

  • PEP 8 の import

    import os, sys のように 1 行にまとめず、1 行に 1 モジュールずつ書きます。

  • None との比較

    == None ではなく is None と書きます。

  • ruff check と ruff format

    ruff check は問題の検出 (--fix で修正)、ruff format は整形です。

問題で確認する

この分野の問題を、解説つきで読めます (登録不要)。

出典・参考

コード例は、実際に実行して結果を確認しています。