今年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. 仮想環境を作成します
- 仮想環境を入れる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