Qiskit-Terraの開発環境を準備する(Windows/Mac対応)

量子コンピューターのOSSであるQiskitの開発に参加してみたいという方向けに、開発前の環境準備についてご紹介します。

qiskit-terra

今回の内容はqiskit-terraのCONTRIBUTING.mdを参照しています。最新の情報はこちらをご確認ください。

PCのOSがMacとWindowsで若干手順が異なるためそれぞれ書きます。

スポンサーリンク

Windowsの方向けセットアップ

WSL2をインストールする

当初Windowsで環境構築した際はWSL2を利用せず進めようとしましたが、一部のツール使用時にエラーが発生したためWSL2を利用して環境構築を行いました。

WSL2とはWindows Subsystem for Linuxのことで、Windows上でLinuxを実行するための仕組みです。(Dockerユーザーは馴染みがあるかもしれません)

準備といってもQiskit特有の準備は特になく、一般的なWSL2のインストール手順に従います。

PowerShellを開いてwsl --installを実行するだけです。デフォルトでUbuntuがインストールされます。

開発用の仮想環境を作成する

Qiskitを開発するためにPython環境を準備する必要があります。公式ドキュメントではAnacondaによる仮想環境の作成が推奨されているためそれに従います。

anaconda-installer

まずはWSL2(Ubuntu)に入り、Anacondaをインストールします。Windows本体にインストールするのではない点に注意してください。

インストールが完了したらcondaコマンドが利用可能かチェックします。

conda -V

> conda 4.12.0

続いて以下のコマンドを実行して仮想環境を生成します。

conda create -y -n QiskitDevenv python=3
conda activate QiskitDevenv

Rustコンパイラをインストールする

Qiskit TerraはPythonベースのライブラリですが、パフォーマンス向上のため一部Rustが採用されています。

そのためQiskitそのものの開発にはRustコンパイラのインストールが必要となります。(単にライブラリの利用だけであればPython環境のみで動作するように設計されているためRustは不要です。)

こちらからRustコンパイラをインストールします。
画面下部にcurlコマンドが表示されているのでコピーしてWSL2上で実行します。

rustup
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh


info: downloading installer

Welcome to Rust!

This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.

Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:

  /home/dmurata/.rustup

This can be modified with the RUSTUP_HOME environment variable.

The Cargo home directory located at:

  /home/dmurata/.cargo

This can be modified with the CARGO_HOME environment variable.

The cargo, rustc, rustup and other commands will be added to
Cargo's bin directory, located at:

  /home/dmurata/.cargo/bin

This path will then be added to your PATH environment variable by
modifying the profile files located at:

  /home/dmurata/.profile
  /home/dmurata/.bashrc

You can uninstall at any time with rustup self uninstall and
these changes will be reverted.

Current installation options:


   default host triple: x86_64-unknown-linux-gnu
     default toolchain: stable (default)
               profile: default
  modify PATH variable: yes

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>1 ####ここで1を押す####

インストールが完了したらまずはenvファイルを読み込んでrustcコマンドが使用可能かチェックしましょう。

source $HOME/.cargo/env
rustc -V
 > rustc 1.59.0 (9d1b2106e 2022-02-23)

Macの方向けセットアップ

開発用の仮想環境を作成する

基本的にWindowsの場合と一緒です。WSLではなくそのままターミナルを開いて各コマンドを実行してください。

C++コンパイラをインストールする

Rustコンパイラを動作させるためには追加でC++のビルドツールが必要なのでインストールする必要があります。

Windows+WSLの場合は大抵のLinuxディストリビューションにインストール済みなので対応不要です。

MacではXCodeをインストールする際についてくるClangコンパイラが該当するので以下のコマンドでインストールします。

xcode-select --install

上記のコマンドを実行して既にインストール済みと表示され、かつ以下のコマンドが正常に実行される場合は既にClangコンパイラはインストール済みなので問題ありません。

clangコマンドが実行可能かチェックしましょう。

clang --version

> Apple clang version 13.1.6 (clang-1316.0.21.2)
Target: x86_64-apple-darwin21.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Rustコンパイラをインストールする

こちらもWindowsと同様です。

Qiskit Terraをインストールする

以下はWindows・Mac共通になるため上記のセットアップが完了したら読み進めてください。

Rust、C++コンパイラの準備が出来たらQiskit Terraをインストールしていきます。

リポジトリのclone

qiskit-terra

まずはQiskit-Terraのリポジトリをcloneします。SSHのcloneが失敗してしまう場合はHTTPSで実行してください。

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

開発に必要なライブラリのインストール

続いてリポジトリに開発に必要なライブラリ群がまとめられているので、必要なものをインストールしていきます。

  • cythonのインストール
pip install cython
  • 単体テストや静的テスト実行環境のインストール
pip install -r requirements-dev.txt
  • Qiskit-Terraのインストール
pip install .

インストール時に以下のようなエラーが出る場合はコンパイラの準備が上手くできていない可能性が高いです。前の手順を正しく踏んでいるか確認してください。

× Building wheel for qiskit-terra (pyproject.toml) did not run successfully.
  │ exit code: 1
  • テストランナーのインストール
pip install -U tox

まとめ

以上でQiskit-Terraを開発する上での最低限の準備は整えられたと思います。

開発する上でのガイドラインはCONTRIBUTING.mdに全容が記載されていて、本記事もこちらを抜粋して紹介しています。開発を本格的に始める際はぜひご一読ください!

コメント