Qiskit 安裝指南


內容參考官方文檔 https://qiskit.org/documentation/install.html

  1. conda create -n name_of_my_env python=3

    創建虛擬環境,如果后面要下載qiskit[visualization],這里的python要安裝3.6版本,不然后面安裝pywinpty時,會有沖突,目前3.7和3.8版本都有問題。

  2. conda activate name_of_my_env

    激活虛擬環境,然后在虛擬環境里安包

  3. pip install qiskit

    這里可以直接安裝,目前的qiskit已經到了0.16版本,目前有人安裝的時候numpy的版本可能不匹配,需要安裝對應版本。

  4. pip install qiskit[visualization]

    如果希望能夠把線路圖畫出來,那么需要安裝visualization,安裝python3.6版本就不會有沖突。

至此,Qiskit的安裝成功,如果要檢驗的話,這里有一段最為簡單的代碼,使用的是IBM的量子模擬器,如果你安裝成功,將能直接運行得到答案。

import numpy as np
from qiskit import(
  QuantumCircuit,
  execute,
  Aer)
from qiskit.visualization import plot_histogram

# Use Aer's qasm_simulator
simulator = Aer.get_backend('qasm_simulator')

# Create a Quantum Circuit acting on the q register
circuit = QuantumCircuit(2, 2)

# Add a H gate on qubit 0
circuit.h(0)

# Add a CX (CNOT) gate on control qubit 0 and target qubit 1
circuit.cx(0, 1)

# Map the quantum measurement to the classical bits
circuit.measure([0,1], [0,1])

# Execute the circuit on the qasm simulator
job = execute(circuit, simulator, shots=1000)

# Grab results from the job
result = job.result()

# Returns counts
counts = result.get_counts(circuit)
print("\nTotal count for 00 and 11 are:",counts)

# Draw the circuit
circuit.draw()

關於python的小伙伴,有一個常用的網頁交互的小伙伴,Jupyter notebook。

關於安裝,因為我直接采用的就是anaconda,所以直接就安裝好了,不過現在直接使用jupyter notebook有一個問題,那就是,不能找到我們先前創造的conda環境,這里就需要進一步的配置。

  1. conda install ipykernel

    在base的環境里安裝ipykernel,問y/n的那就都y了

  2. python -m ipykernel install --user --name 環境名稱 --display-name "在jupyter中顯示的環境名稱"

    前一個環境名稱是剛剛conda創建的虛擬環境的名字,后一個是jupyter中顯示的名字,可以和前面的不一樣。

這個時候再打開jupyter notebook : jupyter notebook,在new的地方就能看見新的環境了。

執行一下先前的代碼,得到結果:

目前我們使用的是simulator,但是我們選擇IBM一定是眼饞他的量子計算機,而不僅僅是個模擬,所以我們的下一步,就是想要來連上我們的真機器。

  1. 創建一個IBM的賬號 https://quantum-computing.ibm.com/login

  2. 在My Account的地方復制自己的API token

  3. 運行以下語句:把引號中的字符串替換成自己的token

    from qiskit import IBMQ
    IBMQ.save_account('MY_API_TOKEN')
    
  4. 運行以下語句:

    IBMQ.load_account() # Load account from disk 前面我們已經把賬號存好了,現在直接加載下來就好。
    IBMQ.providers()    # List all available providers
    

不過這里可能出現一下問題

SSLEOFError: EOF occurred in violation of protocol (_ssl.c:852)

我搜到的解決方法有:

pip install ndg-httpsclient
pip install pyopenssl
pip install pyasn1

但是這樣也可能解決不了問題,因為ssl的問題還有可能是開了代理,當你關了代理的時候,SSLEOFError的問題就解決了。

這個時候你再查一查有哪些機器是可以給你用的,得到結果:

[<AccountProvider for IBMQ(hub='ibm-q', group='open', project='main')>]

這個時候,我們已經愉快地和真的機器有了聯系。

我們重跑上面的代碼,但是這次我們選擇真的機器來跑,IBM有不止一個的機器還有自己的名字:ibmq_qasm_simulator,ibmq_16_melbourne,ibmq_ourense,ibmqx2,ibmq_vigo等等

import numpy as np
from qiskit import(
  QuantumCircuit,
  execute,
  Aer)
from qiskit.visualization import plot_histogram

from qiskit import IBMQ

provider = IBMQ.load_account()
backend = provider.get_backend('ibmq_16_melbourne')

# Create a Quantum Circuit acting on the q register
circuit = QuantumCircuit(2, 2)

# Add a H gate on qubit 0
circuit.h(0)

# Add a CX (CNOT) gate on control qubit 0 and target qubit 1
circuit.cx(0, 1)

# Map the quantum measurement to the classical bits
circuit.measure([0,1], [0,1])

# Execute the circuit on the qasm simulator
job = execute(circuit, backend, shots=1000)

# Grab results from the job
result = job.result()

# Returns counts
counts = result.get_counts(circuit)
print("\nTotal count for 00 and 11 are:",counts)

# Draw the circuit
circuit.draw()

在真的機器上跑要等一會,排個隊,等前面的人跑完了再輪到你,讓我們來看看這個期待的結果:

因為有噪聲的存在,所以原本不該出現的01,10也會產生,這也是真機和模擬器的區別。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM