LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

量子プログラミングのための仮想環境を作りましょう(Qiskit1.0, macOS)

Last updated at Posted at 2024-05-07

今年2月(2024年)qiskit v1.0がリリースされました。qiskit v1.0は、v0.46までのバージョンをただアップグレードすることではなく、新しく入れなければいけないです。
また、今までWebブラウザ(IBM Quantum Lab)で提供していたサービスが5月1日をもって終了しますので、ローカルの環境にqiskitを入れることで続けてご利用できます。
ただ、前のバージョンで書かれたコードは、以前のバージョンで実行したいこともある、また、qiskit v1.0と~v0.46を両方入れているとエラーが起きることもあります。
ですので、私は複数のpythonの仮想環境を作り、qiskit v1.0と~v0.46をそれぞれ入れています。
今回は、pythonの仮想環境でqiskit1.0を入れる方法を紹介いたします。

目標

macOSでqiskit v1.0のpython仮想環境を作り、Hello Worldの1つ目のシェルができる環境を構築します。
参考ページ:Install Qiskit

現在の環境

現在の環境を確認します。
macOS 14.4.1
Python 3.9.6

*以下のコマンドで確認できます。

python3 --version
which python3
python --version
which python

*condaのpythonを使っている場合には、仮想環境のpythonと競合することがあります。
対策として二つの方法を紹介します。
対策1. condaではなく、ローカルのpythonを使います。以下のコマンドでcondaのpythonから抜けられます。

conda deactivate

対策2. condaで仮想環境を作ることを推奨します。
*この記事の下にAnacondaでpythonの仮想環境を作るの所を参考してください。

仮想環境を構築しましょう

1. 仮想環境を作成します

  1. 仮想環境を入れるdirectoryは、好みの場所で良いですが、ホームディレクトリーがよく使われます。macOSのデフォルトではcdと打ちますと、ホームディレクトリーである~、もしくは、/Users/<user_name>に移動します。
cd

もしくは、

cd /Users/<user_name>
cd ~

2. ホームディレクトリーに仮想環境を置くディレクトリーを作成します。これ以降は、仮想環境の名前をmy_envとして記載します。

mkdir -p ~/.venv/my_env

*他の仮想環境を作る場合には、/.venvディレクトリーの下に新しいフォルダーを作成します。

3. ディレクトリーにpythonの仮想環境を作ります。

python3 -m venv ~/.venv/my_env
  • macデフォルトの場合にはpython3、condaを使う場合にはpythonとなります。

4. 感想環境を実行しますと、新しい環境でpythonが動くようになります。

source ~/.venv/my_env/bin/activate

2. パッケージをインストールします

pip install qiskit matplotlib qiskit_ibm_runtime pylatexenc jupyter

画像機能やjupyterで使われるqiskit[visualization]パッケージに関しては、
zshシェルでは、

pip install 'qiskit[visualization]'

他のシェルでは、

pip install qiskit[visualization]

と入力します。
*以下のコマンドでご使用のシェルを確認できます。

echo $SHELL

3. jupyter notebookを起動します

1. 作業ディレクトリーでjupyter notebookを起動します。
jupyter notebook .

  • jupyter notebookが開かない場合の対応:プライベートブラウザーを開く/別のブラウザーを使う

2. control^ + Cコマンドで終了できます。

4. 仮想環境を終了します

以下のコマンドで仮想環境を終了できます。

deactivate

仮想環境が正常に終了されているか確認するためには、使っているpythonの場所を確認します。pythonの場所が1.で作ったディレクトリーではなく、ローカルの場所を使っていると正常に終了されていることです。

which python3

ここまでの流れで、仮想環境が構築できました。以下には、仮想環境を

追記1. 仮想環境を削除します

仮想環境を終了した後、以下のコマンドで仮想環境のフォルダーを削除します。

rm -r my_env

もしくは、

rm -rf my_env

追記2. 仮想環境を初期化します

仮想環境を再構築したい場合には、以下のコマンドで実行できます。

python -m venv —clear my_env

追記3. よく使うパッケージを保存します

よく使うパッケージを保存しますと、新しい環境を構築する時、もしくは、共同作業する際に複数の人の間で、同じバージョンを使うように再利用できます。
よく使うパッケージとそのバージョンは、以下のコマンドで構築できます。

pip freeze > requirements.txt

構築する環境で以下のコマンドでパッケージをインストールします。

python -m pip install -r requirements.txt

追記4. aliasを登録します。

仮想環境の起動には、毎回source ~activateが必要で面倒ですので、aliasに登録して便利に使いましょう。

open ~/.zshrc
alias my_env='source /Users/<user_name>/.venv/my_env/bin/activate'
source ~/.zshrc

ターミナル再起動
*aliasの=の前後にスペースを入れるとエラー起きうるので注意してください。

Anacondaでpythonの仮想環境を作る

Anacondaのpythonを使っている場合には、condaコマンドでもpython仮想環境を作成できます。
参考ページ:Anaconda仮想環境

conda create --name <my_env>
conda activate <my_env>
pip install 
conda deactivate
conda env list

エラーの記録:ImportError: Qiskit is installed in an invalid environment that has both Qiskit >=1.0 and an earlier version.

ローカルのpython環境でanacondaを使って、そこにqiskitを入れている場合には、jupyterを使っている際に、仮想環境のqiskitと競合してしまい、エラーが起きてしまいます。

私の環境で出ましたエラーの全文を記載しておきます。

ImportError: Qiskit is installed in an invalid environment that has both Qiskit >=1.0 and an earlier version. You should create a new virtual environment, and ensure that you do not mix dependencies between Qiskit <1.0 and >=1.0. Any packages that depend on 'qiskit-terra' are not compatible with Qiskit 1.0 and will need to be updated. Qiskit unfortunately cannot enforce this requirement during environment resolution. See https://qisk.it/packaging-1-0 for more detail.

対策は、ローカルのanaconda pythonで使っているqiskitを削除することです。

!which pip
    .../anaconda3/bin/pip
pip uninstall qiskit qiskit-terra
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