Japanese
Languages
English
Bengali
French
German
Japanese
Korean
Portuguese
Spanish
Tamil

はじめに

インストール

Qiskitを使い始めましょう! 最初に行うことは、パッケージの実行方法とインストール方法を選択することです。 これを行うには、主に3つの方法があります。

Qiskit は Python 3.7 以降をサポートしています。ただし、Python と Qiskit はどちらも進化しているエコシステムであり、どちらか一方で新しいリリースが発生すると、互換性に問題が生じる場合があります。

始めるには Python をローカルシステムにダウンロードする必要があります。 Jupyter は Qiskit とのやり取りに推奨されます。

Qiskitを他のアプリケーションから明確に分離して、経験をよりよいものにするため、 Python仮想環境 を使用することをおすすめします。

Pythonのみをインストールした最小環境を作ります。

python3 -m venv /path/to/virtual/environment

新しい環境をアクティブにします。

source /path/to/virtual/environment/bin/activate

注: Windowsを使用している場合は、 PowerShellで以下のコマンドを使用します。

python3 -m venv c:\path\to\virtual\environment
c:\path\to\virtual\environment\Scripts\Activate.ps1

次に、 Qiskit パッケージをインストールします。

pip install qiskit

パッケージが正しくインストールされている場合は、 pip list を実行して、仮想環境でアクティブなパッケージを確認できます。

可視化機能やJupyter notebookを使用する場合は、Qiskitに visualization 機能を追加してインストールすることをお勧めします。

pip install qiskit[visualization]

zshユーザー(新しいバージョンのmacOSのデフォルトシェル)の場合は、 qiskit[visualization] を引用符で囲む必要があります。

pip install 'qiskit[visualization]'

以下のクラウドベンダーの環境では、Qiskitがプレインストールされています。


IBM Quantum Lab

Build quantum applications and experiments with Qiskit in a cloud programming environment.

Strangeworks

A platform that enables users and organizations to easily apply quantum computing to their most pressing problems and research.

ソースからエレメントをインストールすることにより、Python Package Index (PyPI) リポジトリのバージョンを使う代わりに、最新のQiskitバージョンにアクセスすることが出来ます。これにより、Qiskit コードの最新版を調査したり、拡張することがより効果的にできるようになります。

ソースからエレメントやコンポーネントをインストールする時には、デフォルトでは、安定 バージョン( pip``パッケージとして公開されているコードベースと同じもの) ではなく、 ``開発 バージョン( master git ブランチに該当) が使われます。 エレメントやコンポーネントの 開発 バージョンは通常新しい機能や変更が含まれているため、一般的には他の項目についても 開発 バージョンを利用することが求められています。

Terraと Aerのパッケージはソースからビルドするためにコンパイラーが必要なため、インストール前に準備します。Ignis、Aqua、IBM Quantum Provider バックエンドにはコンパイラーは必要ありません。

pip のバージョンがソースバージョンより古い場合に、要求するものよりも古いバージョンをインストールしてしまうことを防ぐため、ソースからエレメントをインストールするには以下の順番で実施します:

  1. qiskit-terra

  2. qiskit-aer

  3. qiskit-ibmq-provider (IBM Quantum デバイスやオンライン・シミュレーターに接続する場合)

いくつかのコンポーネントとエレメントで同時に作業したい場合には、各エレメントに対して以下のステップを踏みます。

注釈

Pythonの名前空間パッケージを使用しているため、パッケージのインストール方法には注意する必要がります。もしソースからエレメントをインストールすることを考えている場合は、qiskit メタパッケージを使用しないでください。また、このガイドに従って、開発用に別の仮想環境を使用してください。もし、既存のインストールと開発環境を混在させる場合は、https://github.com/pypa/sample-namespace-packages/blob/master/table.md を参照して、連携するインストール方法の組み合わせを確認してください。

Set up the Virtual Development Environment

python3 -m venv QiskitDevenv
source QiskitDevenv/bin/activate

Installing Terra from Source

ソースからインストールするには、システムにRustコンパイラがインストールされている必要があります。Rustコンパイラをインストールするには、クロスプラットフォームのRustインストーラである rustup を使用することをお勧めします。rustup を使用するには、次のURLにアクセスできます。

https://rustup.rs/

これは、プラットフォームに rust をインストールする方法の説明を提供します。rustup の他に、 他のインストール方法 も利用できます。

Rust コンパイラがインストールされると、Qiskit Terra をインストールする準備が整います。

  1. Terraレポジトリをクローンします。

    git clone https://github.com/Qiskit/qiskit-terra.git
    
  2. レポジトリをクローンすると、``qiskit-terra``という名前のローカル・フォルダが作成されます。

    cd qiskit-terra
    
  3. もし、テストを実行したり文法をチェックしたい場合は、開発者向けライブラリーをインストールします。

    pip install -r requirements-dev.txt
    
  4. qiskit-terra をインストールします。

    pip install .
    

編集可能モード(プロジェクトのコードを変更しても再インストールする必要なし) でインストールする場合は、次の手順を実行します:

pip install -e .

編集可能モードでインストールすると、コンパイルされた拡張機能が最適化なしでデバッグモードでビルドされます。これは、コンパイルされたコードの実行時のパフォーマンスに影響します。編集可能モードを使用し、最適化を有効にしてリリースでコンパイルされたコードをビルドする場合は、次を実行できます。

python setup.py build_rust --release --inplace

pip を実行すると、バイナリーがリリース モードで再構築されます。Qiskit で Rust コードを使用している場合は、ローカルで変更を加えるたびに拡張コードを再構築する必要があります。 pip install -e . は、呼び出されたときにのみRust拡張機能をビルドするため、拡張機能を再構築しない限り、pip の実行後に Rust コードに加えたローカル変更はインストールされたパッケージに反映されません。上記の build_rust コマンドを利用してこれを行うことができます( --release の有無にかかわらず、デバッグモードとリリースモードのどちらでビルドするかに基づきます)。

Terraのインストール後、サンプル・コードを実行することができます。サンプルを実行するには以下のコマンドを使用します:

python examples/python/using_qiskit_terra_level_0.py

注釈

他のコンポーネントをインストールしない場合、qiskit-terraはqiskit-aerとqiskit-ibmq-providerの両方がインストールされていないことを示す RuntimeWarning を発します。これは追加要素を使用するつもりだが、インストールされていないことに気づかなかったり、AerやIBM Quantum Providerのインストールが何らかの理由でインストールが失敗しているために警告を発します。これらの警告を抑制したい場合は、以下を追加してください:

import warnings
warnings.filterwarnings('ignore', category=RuntimeWarning,
                        module='qiskit')

コード内にて、qiskit をまず最初にインポートするように指定します。 これにより、欠落しているqiskit-aerおよびqiskit-ibmq-providerに関する警告が抑制されますが、qiskitまたは他のパッケージからのその他の警告は継続して表示されます。

Installing Aer from Source

  1. Aerリポジトリをクローンします。

    git clone https://github.com/Qiskit/qiskit-aer
    

Aerをインストールする手順は、使用しているオペレーティングシステムによって異なります。 AerはPythonインターフェイスを備えたコンパイル済みのC++プログラムであるため、Aer バイナリを構築するための Python 以外の依存関係があり、オペレーティング システムによっては一般的にインストールすることはできません。

Linux
  1. ビルドの必要要件をインストールします。

    AerをビルドするにはC++コンパイラと開発ヘッダーが必要です。

    Fedoraもしくは同等のLinux ディストリビューションを使っている場合は、次のコマンドでインストールできます:

    dnf install @development-tools
    

    Ubuntu/Debianを使っている場合は以下の通りです:

    apt-get install build-essential
    
  2. OpenBLASの開発ヘッダーをインストールします。

    Fedoraもしくは同等のLinux ディストリビューションを使っている場合は、次のコマンドでインストールできます:

    dnf install openblas-devel
    

    Ubuntu/Debianを使っている場合は以下の通りです:

    apt-get install libopenblas-dev
    
macOS
  1. 依存関係をインストールします。

    macOSで Clang <https://clang.llvm.org/> コンパイラを使用するには、 OpenMP <https://www.openmp.org/> をサポートするための追加のライブラリをインストールする必要があります。 brew <https://brew.sh/> __を使用して、この依存関係およびその他の依存関係をインストールできます。

    brew install libomp
    
  2. 次にBLAS実装をインストールします。OpenBLAS が一般的な選択です。

    brew install openblas
    

    次に、Xcode Command Line Tools をインストールします。

    xcode-select --install
    
Windows
  1. すべての依存関係は、上にインストールした Visual C++ コンパイラーの一部として追加されるため、追加のセットアップは必要ありません。

Qiskit Aerは、量子回路のための高性能なシミュレータフレームワークです。様々なシミュレーションの目的を達成するために、いくつかの バックエンド を提供しています。

  1. qiskit-aerを直接ビルドしインストールします。

    pip 19.0.0 より前がインストールされていて、カスタム・ビルドが不要な環境の場合は、次を実行します:

    cd qiskit-aer
    pip install .
    

    これにより、バイナリーのビルドとAerのインストールが行われます。

    別な手法として、より新しいpipがインストールされている場合、もしくはカスタム要件がある環境の場合、手動でPython wheelをビルドすることができます。

    cd qiskit-aer
    python ./setup.py bdist_wheel
    

    wheelのビルドにカスタム・オプションを指定する必要がある場合は、:ref:`aer_wheel_build_options`を参照してください。

    Python wheelは、ビルド後Aerレポジトリの dist/ ディレクトリに保存されます。正確なバージョンは場合に依ります。

    cd dist
    pip install qiskit_aer-*.whl
    

    作成されたwheelの正確なファイル名は、開発中であるAerの現在のバージョンに依存します。

Custom options

Aerビルドシステムは、 scikit-build <https://scikit-build.readthedocs.io/en/latest/index.html> __ を使用して、Pythonインターフェイスでビルドするときにコンパイルを実行します。 これは、 setuptools <https://setuptools.readthedocs.io/en/latest/> __ のインターフェースとして機能し、 CMake <https://cmake.org/> __ を呼び出して、ローカルシステムのバイナリをコンパイルします。

バイナリのコンパイルは複雑なため、ビルド・プロセスの特定の部分にオプションを渡す必要があるかもしれません。 変数を渡す方法は次のとおりです:

python setup.py bdist_wheel [skbuild_opts] [-- [cmake_opts] [-- build_tool_opts]]

ここで、角括弧`[]`内の要素はオプションで、skbuild_opts``と ``cmake_optsbuild_tool_opts はあなたの選択したフラグに置き換えます。*CMake*のオプションはこちら(https://cmake.org/cmake/help/v3.6/manual/cmake.1.html#options)にあります。例えば、以下のようなコマンドを実行できます:

python setup.py bdist_wheel -- -- -j8

これは基礎となるビルド・システム(この場合 Automake ) に -j8 フラグを渡して、8プロセッサを使って並列にビルドしたいことを伝えています。

例えば、Linuxでのこれらのフラグの一般的な使用例は、使用するC++コンパイラのバージョン(通常デフォルトが古すぎる) を特定のものに指定することがあげられます:

python setup.py bdist_wheel -- -DCMAKE_CXX_COMPILER=g++-7

ここでは、Aerをコンパイルするとき、デフォルトのg++ではなくg++-7コマンドを使うようCMakeに伝えています。

他の一般的な使用例は、環境によって、プラットフォーム名を指定したり、静的リンクを無効にしたりする必要がある場合が考えられます。

python setup.py bdist_wheel --plat-name macosx-10.9-x86_64 \
-- -DSTATIC_LINKING=False -- -j8

ここで、--plat-name はsetuptoolsのフラグでパッケージのメタデータ内で使用されるプラットフォーム名を指定します。-DSTATIC_LINKING はCMakeのフラグで静的リンクを無効にするために使用されます。-j8 はAutomakeのフラグで、コンパイラに8プロセッサを使用するよう伝えます。

プラットフォームに依存する共通オプションのリストは以下の通りです。

プラットフォーム

ツール

オプション

ユースケース

すべて

Automake

-j

後ろに数字が続くこのオプションは、コンパイラが使用するプロセッサの数を指定します。

Linux

CMake

-DCMAKE_CXX_COMPILER

特定のC++コンパイラーを指定するときに使用します。デフォルトのg++が古すぎる場合は、しばしば必要になります。

OSX

セットアップツール

–plat-name

出力Pythonパッケージ内のプラットフォーム名を指定する時に使用します。

OSX

CMake

-DSTATIC_LINKING

静的リンクを使用するか否かを指定する時に使用します。

注釈

これらのオプションの中にはプラットフォーム固有ではないものがあります。これらの特定のプラットフォームは、環境で一般的に使用されるためリストされています。 詳しくはツールの資料を参照してください。

Installing IBM Quantum Provider from Source

  1. qiskit-ibmq-providerリポジトリーをクローンします。

    git clone https://github.com/Qiskit/qiskit-ibmq-provider.git
    
  2. リポジトリーをクローンすると、 qiskit-ibmq-provider という名前のローカル・フォルダーが作成されます。

    cd qiskit-ibmq-provider
    
  3. テストや文法チェックを実行したい場合は、開発者要件をインストールします。ソースコードからインストール場合、qiskit-ibmq-providerパッケージをインストールおよび使用するために必須ではありません。

    pip install -r requirements-dev.txt
    
  4. qiskit-ibmq-providerをインストールします。

    pip install .
    

編集可能モード(プロジェクトのコードを変更しても再インストールする必要なし) でインストールする場合:

pip install -e .

プラットフォーム・サポート

Qiskit は可能な限り多くのプラットフォームをサポートするよう努めていますが、利用可能なテストリソースとプラットフォームの可用性に制限があるため、すべてのプラットフォームをサポートできるわけではありません。Qiskit のプラットフォーム・サポートは3つの層に分かれており、各層のサポートレベルは異なります。これら以外のプラットフォームの場合、Qiskit はおそらくまだインストール可能ですが、テストされていないため、ソースから Qiskit(およびおそらく Qiskit の依存関係)を構築する必要があります。

さらに、 Qiskit は CPython のみをサポートします。他の Python インタプリタとの実行は現在サポートされていません。

ティア 1

ティア1がサポートするプラットフォームは、開発プロセスの一環としてアップストリームで完全にテストされ、提案された変更が正しく機能することを確認します。コンパイル済みのバイナリは、リリースプロセスの一部としてビルド、テスト、および PyPI に公開されます。これらのプラットフォームではすべての依存関係が利用可能であるため、これらのプラットフォームは、機能している Python環境だけでインストール可能であることが期待されます。

ティア1プラットフォームの現在:

  • Linux x86_64( manylinux 2014 パッケージ仕様と互換性のあるディストリビューション)。

  • macOS x86_64 (10.9 以降 )

  • Windows 64ビット

ティア2

ティア2プラットフォームは、開発プロセスの一部としてアップストリームでテストされていません。ただし、プリコンパイルされたバイナリは、リリースプロセスの一部としてビルド、テスト、および PyPI に公開され、これらのパッケージは、機能している Python環境のみでインストールされることが期待できます。

ティア2プラットフォームの現在:

  • Python < 3.10 向けの Linux i686( manylinux 2014 パッケージ仕様と互換性のあるディストリビューション)。

  • Python < 3.10 向けの Windows 32ビット

  • Linux aarch64( manylinux 2014 パッケージ仕様と互換性のあるディストリビューション)

ティア3

ティア3プラットフォームは、開発プロセスの一部としてアップストリームでテストされていません。コンパイル済みのバイナリは、リリースプロセスの一部としてビルドされ、PyPI に公開されます。テストはまったく行われません。Python環境が機能しているだけではインストールできない場合があり、インストールプロセスの一部としてソースから依存関係を構築するためにC / C ++コンパイラまたは追加のプログラムが必要になる場合があります。これらのプラットフォームのサポートは最善の努力のみです。

ティア3プラットフォームの現在:

  • Linux ppc64le ( manylinux 2014 パッケージ仕様と互換性のあるディストリビューション)

  • Linux s390x ( manylinux 2014 パッケージ仕様と互換性のあるディストリビューション)

  • macOS arm64 (10.15 以降)

  • Python >= 3.10 向けの Linux i686( manylinux 2014 パッケージ仕様と互換性のあるディストリビューション)

  • Python >= 3.10 向けの Windows 32ビット版

準備はいいですか?…

Qiskit from the ground up

Learn how to build, execute, and post-process quantum circuits with Qiskit.

Start learning Qiskit

Dive into the tutorials

Find out how to leverage Qiskit for everything from single-circuits to full quantum application development.

Qiskit tutorials