ベスパリブ

プログラミングを主とした日記・備忘録です。ベスパ持ってないです。

qiskitrcファイルの場所と、IBMQ.load_account()について

qiskitrcファイルの場所

C:\Users\[ユーザ名]\.qiskit の中にあります。

qiskitrcファイルって何?(IBMQ.load_account()について)

IBMQから貰った自分のトークンを使えば、IBMQにジョブを投げて実機の量子コンピュータで量子回路を実行することができます。

そのとき、以下のようなコードを書くと思います。

from qiskit import IBMQ

# 自分のトークンをローカルPCにセーブする
IBMQ.save_account('MY_API_TOKEN')

# アカウント情報をロードする
IBMQ.load_account()

実はIBMQ.save_account('MY_API_TOKEN')を実行した時点で C:\Users\[ユーザ名]\.qiskitqiskitrc ファイルが作成され、そこにIBMQのトークン情報が保存されます。

そして IBMQ.load_account() ではこのqiskitrc ファイルを読み込んでいます。

なので、毎回 IBMQ.save_account('MY_API_TOKEN') は実行する必要ありません。トークン情報は他人に漏れたらだめな重要な情報なので、うっかりGitHubなどに上げないためにもこの行はさっさと消すことをおすすめします。

IBMQAccountCredentialsNotFound エラー

IBMQ.load_account() したときに以下のエラーが出る場合があります。

IBMQAccountCredentialsNotFound            Traceback (most recent call last)
<ipython-input-6-05e731fbbf7d> in <module>
      1 from qiskit import IBMQ
      2 
----> 3 IBMQ.load_account()

c:\Users\username\workspace\my-practice\qiskit_textbook_practice\venv\lib\site-packages\qiskit\providers\ibmq\ibmqfactory.py in load_account(self)
    166 
    167         if not credentials_list:
--> 168             raise IBMQAccountCredentialsNotFound(
    169                 'No IBM Quantum Experience credentials found.')
    170 

IBMQAccountCredentialsNotFound: 'No IBM Quantum Experience credentials found.'

このエラーはIBMQ.load_account() 時に、 qiskitrc ファイルがなくて認証情報を読み込めないときに発生します。

save_account('MY_API_TOKEN') をして qiskitrc ファイルを作成しましょう。