PyCharm 2024.2 ヘルプ

Docker を使用してインタープリターを構成する

導入

PyCharm と Docker の統合により、Docker コンテナーにデプロイされたさまざまな構成の開発環境でアプリケーションを実行できます。

前提条件

次の前提条件が満たされていることを確認してください。

  • Docker のドキュメント(英語)に従って、Docker がインストールされます。

    Docker はさまざまなプラットフォームにインストールできますが、ここでは Windows(英語) インストールを使用します。

    このチュートリアルを別のプラットフォームで繰り返す必要がある場合は、macOS(英語) および Linux(英語) に Docker インストールを使用してください (Ubuntu、他のディストリビューション関連の手順も利用できます)。

  • 安定したインターネット接続があり、PyCharm が busybox:latest (BusyBox Docker 公式イメージ(英語)の最新バージョン) をダウンロードして実行できます。Docker を使用してインタープリターを正常に構成したら、オフラインにすることができます。

  • Docker の使用を開始する前に、Docker プラグインが有効になっていることを確認してください。プラグインは PyCharm にバンドルされており、デフォルトで有効になっています。プラグインが有効になっていない場合は、プラグインのインストールの説明に従って、Ctrl+Alt+S 設定のプラグインページでプラグインを有効にしてください。

    設定ダイアログ (Ctrl+Alt+S) で、ビルド、実行、デプロイ | Docker を選択し、Docker デーモンに接続<あなたの operating system> のための Docker を選択します。例: macOS にいる場合は、Mac 用 Docker を選択します。詳細については、Docker 設定を参照してください。

Docker ベースのプロジェクトインタープリターに Python パッケージをインストールできないことに注意してください。

例の準備

Python プロジェクトを作成する QuadraticEquationSolver.py ファイルを追加し、次のコードをコピーして貼り付けます。

import math class Solver: def demo(self, a, b, c): d = b ** 2 - 4 * a * c if d > 0: disc = math.sqrt(d) root1 = (-b + disc) / (2 * a) root2 = (-b - disc) / (2 * a) return root1, root2 elif d == 0: return -b / (2 * a) else: return "This equation has no roots" if __name__ == '__main__': solver = Solver() while True: a = int(input("a: ")) b = int(input("b: ")) c = int(input("c: ")) result = solver.demo(a, b, c) print(result)

リモートインタープリターとしての Docker の設定

それでは、Docker ベースのリモートインタープリターを定義しましょう。

  1. 以下のいずれか 1 つを実行します:

    • Python インタープリターセレクターをクリックして、新しいインタープリターを追加を選択します。

    • Ctrl+Alt+S を押して設定を開き、プロジェクト: <プロジェクト名> | Python インタープリターに移動します。利用可能なインタープリターのリストの横にあるインタープリターの追加リンクをクリックします。

    • Python インタープリターセレクターをクリックしてインタープリターの設定を選択します。利用可能なインタープリターのリストの横にあるインタープリターの追加リンクをクリックします。

  2. Docker についてを選択します。

  3. Docker サーバードロップダウンで既存の Docker 構成を選択します。

    または、 をクリックし、次の手順を実行して新しい Docker 構成を作成します。

    Docker 構成を作成する

    The Add button をクリックして Docker 構成を追加し、Docker デーモンへの接続方法を指定します。

    接続設定は、Docker のバージョンとオペレーティングシステムによって異なります。詳細については、Docker 接続設定を参照してください。

    ダイアログの下部に接続完了メッセージが表示されます。

    Docker connection settings

    Windows で Docker または macOS を使用するときに、Docker デーモンを実行している仮想マシンにローカルパスをマッピングする方法の詳細については、Windows および macOS ホストの仮想マシンパスマッピングを参照してください。マッピングされたローカルパスの外部にあるディレクトリに対してボリュームやバインドマウントを使用することはできません。

    このテーブルは、Docker がネイティブに実行され、コンテナーに任意のディレクトリをマウントできる Linux ホストでは使用できません。

  4. 次のアクションは、ビルド済みのイメージを Docker レジストリからプルするか、イメージを Dockerfile からローカルにビルドするかによって異なります。

    Docker イメージをプルする

    プルまたは既存を使用を選択し、イメージタグフィールドで目的のイメージのタグを指定します。

    Creating a Docker interpreter by pulling an image
    Docker イメージを作成する

    ビルドを選択し、必要に応じて Dockerfile およびコンテキストフォルダーフィールドのデフォルト値を変更します。

    Creating a Docker interpreter by building an image

    必要に応じて、オプションセクションを展開し、次のように指定します。

    イメージタグ

    ビルドされたイメージのオプションの名前とタグを指定します。

    これは、将来的にイメージを参照できます。フィールドを空白のままにすると、イメージにはランダムな一意の識別子のみが含まれます。

    ビルドオプション

    サポートされている docker build オプション(英語)を設定します。

    例: --label オプションを使用して、ビルドされたイメージのメタデータを指定できます。

    ビルド引数

    ビルドプロセス中に通常の環境変数のようにアクセスできるビルド時の変数の値を指定しますが、中間イメージまたは最終イメージには保持されません。

    これは、docker build コマンドで --build-args オプションを使用するのと似ています。

    これらの変数は、ARG 命令を使用して Dockerfile で定義する必要があります。例: 使用するベースイメージのバージョンの変数を定義できます。

    ARG PY_VERSION=latest FROM python:$PY_VERSION

    この場合、PY_VERSION 変数はデフォルトで latest に設定され、ビルド時の引数として再定義しない限り、Dockerfile は Python の最新バージョンのイメージを生成します。PY_VERSION=3.10 を設定すると、Docker は代わりに python:3.10 をプルし、Python バージョン 3.10 のコンテナーを実行します。

    PY_VERSION 引数の再定義は、次のコマンドラインオプションの設定に似ています。

    --build-arg PY_VERSION=3.10

    複数の引数をスペースで区切って指定できます。

  5. PyCharm が Docker デーモンに接続するのを待ち、コンテナーのイントロスペクションを完了します。

    Docker container introspection is completed
  6. 次に、Docker コンテナーで使用するインタープリターを選択します。コンテナー内にすでに設定されている任意の virtualenv または conda 環境を選択するか、システムインタープリターを選択できます。

    Selecting a system interpreter for a Docker target
  7. OK をクリックします。

    構成されたリモートインタープリターがリストに追加されます。

Docker コンテナーでアプリケーションを実行する

ガターで、main 句の横にある アイコンをクリックし、実行 'solver' を選択します。

Run context menu

スクリプトは実行ツールウィンドウで起動されます。スクリプトに値を指定します。

Running the sample in a Docker container

サービスツールウィンドウに切り替えて、コンテナーの詳細をプレビューします。コンテナーノードを展開し、実行中のコンテナーを選択します。

Docker container in the Services tool window

ログタブにも同じ実行結果が含まれていることに注意してください。

Docker コンテナーでのアプリケーションのデバッグ

次に、アプリケーションをデバッグしましょう。そのために、行番号をクリックして、d を計算する行にブレークポイントを置きましょう。次に、ガターの をクリックし、デバッグ 'solver' を選択します。

Setting a breakpoint and launching the debugger

デバッガーは Docker コンテナーでも実行されます。

Debugging in a Docker container

ただし、このコンテナーの ID は異なるため、名前も異なります。

要約

PyCharm を使用して何がなされたのかをまとめましょう。

  • プロジェクトを作成し、Python スクリプトを追加しました。

  • リモートインタープリターを設定しました。

  • Docker コンテナーでスクリプトを実行し、デバッグしました。

  • 最後に、Docker ツールウィンドウを起動し、ターミナルですべての詳細を確認しました。

追加情報については、次のビデオチュートリアルを参照してください。

関連ページ:

Docker

Docker は、分離された再現可能な環境で実行可能ファイルをデプロイおよび実行するためのツールです。これは、たとえば、本番環境と同じ環境でコードをテストする場合に役立ちます。PyCharm は Docker 機能を統合し、Docker イメージの作成、Docker コンテナーの実行、Docker Compose アプリケーションの管理、パブリックおよびプライベート Docker レジストリの使用など、IDE から直接実行するための支援を提供します。Docker コンテナーにデプロイされたさまざま...

プラグインのインストール

プラグインは PyCharm のコア機能を拡張します。例: プラグインをインストールして、次の機能を取得します。バージョン管理システム、課題追跡システム、ビルド管理サーバー、その他のツールとの統合。さまざまな言語とフレームワークのコーディング支援サポート。ショートカットのヒント、ライブプレビュー、ファイルウォッチャーなど。新しいプログラミング言語を学ぶのに役立つコーディング演習。プラグイン設定を開くを押して設定を開き、を選択します。マーケットプレースタブを使用して、JetBrains マーケット...

Docker 接続設定

PyCharm から Docker エンジン API にアクセスするための設定を指定します。Docker と PyCharm の統合の使用方法の詳細については、「Docker」を参照してください。Docker プラグインを有効にするこの機能は、デフォルトで PyCharm にバンドルされて有効になっている Docker プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、Doc...

Python プロジェクトを作成する

純粋な Python プロジェクトは、Python プログラミングを対象としています。プロジェクトは、ソースコード、テスト、使用するライブラリ、個人設定を 1 つのユニットに整理できます。プロジェクトが不要な場合は、LightEdit モードでファイルを編集できます。プロジェクトを作成するには、次のいずれかを実行します。に移動します。ウェルカム画面で、新規プロジェクトをクリックします。、新規プロジェクトダイアログで、プロジェクト名とその場所を指定します。ダイアログは、PyCharm エディション...

プロジェクトを作成する

プロジェクトを作成したら、新しい項目の追加を開始できます。新しいディレクトリ、パッケージ、ファイルを作成したり、既存のファイルやフォルダーを追加したりできます。新規項目の作成:新規ファイルを作成する以下のいずれか 1 つを実行します: プロジェクトツールウィンドウ () で、新しいファイルを作成するディレクトリまたはパッケージを選択し、メインメニューからを選択します。ディレクトリまたはパッケージを右クリックし、コンテキストメニューから新規を選択します。ディレクトリを選択し、を押します。、目的の...

Python インタープリターを構成する

PyCharm の Python インタープリター:PyCharm で Python コードを使用するには、少なくとも 1 つの Python インタープリターを構成する必要があります。Python インストールで使用可能なシステムインタープリターを使用できます。また、Virtualenv、pipenv、Poetry、または conda 仮想環境を作成することもできます。仮想環境は、基本インタープリターとインストールされたパッケージで構成されます。PyCharm Professional では、SS...