jwoehr / qisjob

Qiskit Job Control
Other
32 stars 4 forks source link

matplotlib dependency? #9

Closed omarcostahamido closed 3 years ago

omarcostahamido commented 3 years ago

a simple run of a qasm file returns:

warnings.warn('Timestamps in IBMQ backend properties, jobs, and job results '
Traceback (most recent call last):
  File "/Users/user/Documents/QISJOB/bin/qisjob", line 231, in <module>
    QJ.do_it()
  File "qis_job/qis_job.pyx", line 229, in qis_job.qis_job.QisJob.do_it
    self.one_exp(f_path)
  File "qis_job/qis_job.pyx", line 512, in qis_job.qis_job.QisJob.one_exp
    self.verbosity(circ.draw(), 2)
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/circuit/quantumcircuit.py", line 1370, in draw
    cregbundle=cregbundle)
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/visualization/circuit_visualization.py", line 341, in circuit_drawer
    cregbundle=cregbundle)
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/visualization/circuit_visualization.py", line 699, in _matplotlib_circuit_drawer
    cregbundle=cregbundle, global_phase=global_phase)
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/visualization/matplotlib.py", line 121, in __init__
    raise ImportError('The class MatplotlibDrawer needs matplotlib. '
ImportError: The class MatplotlibDrawer needs matplotlib. To install, run "pip install matplotlib".

is there an option that I can use to work around this, or is it a mandatory dependency? I'm trying to find the most lightweight installation/setup for qisjob.

omarcostahamido commented 3 years ago

ok, so i have a guess that this might be related to my /user/.qiskit/settings.conf file being:

[default] 
circuit_drawer = mpl

should I adventure into simply deleting that second line, then:

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/_bootstrap.py:219: UserWarning: QuantumInspire not installed.
  return f(*args, **kwds)
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/_bootstrap.py:219: UserWarning: Rigetti Forest not installed.
  return f(*args, **kwds)
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/_bootstrap.py:219: UserWarning: qiskit-jku-provider not installed.
  return f(*args, **kwds)
/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/providers/ibmq/ibmqfactory.py:192: UserWarning: Timestamps in IBMQ backend properties, jobs, and job results are all now in local time instead of UTC.
  warnings.warn('Timestamps in IBMQ backend properties, jobs, and job results '
SSL handshake failed on verifying the certificate
protocol: <asyncio.sslproto.SSLProtocol object at 0x7faa24bb7390>
transport: <_SelectorSocketTransport fd=11 read=polling write=<idle, bufsize=0>>
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/sslproto.py", line 625, in _on_handshake_complete
    raise handshake_exc
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/sslproto.py", line 189, in feed_ssldata
    self._sslobj.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 763, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
SSL error in data received
protocol: <asyncio.sslproto.SSLProtocol object at 0x7faa24bb7390>
transport: <_SelectorSocketTransport closing fd=11 read=idle write=<idle, bufsize=0>>
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/sslproto.py", line 526, in data_received
    ssldata, appdata = self._sslpipe.feed_ssldata(data)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/sslproto.py", line 189, in feed_ssldata
    self._sslobj.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 763, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
Traceback (most recent call last):
  File "/Users/user/Documents/QISJOB/bin/qisjob", line 231, in <module>
    QJ.do_it()
  File "qis_job/qis_job.pyx", line 229, in qis_job.qis_job.QisJob.do_it
    self.one_exp(f_path)
  File "qis_job/qis_job.pyx", line 550, in qis_job.qis_job.QisJob.one_exp
    result_exp = job_exp.result()
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/providers/ibmq/job/ibmqjob.py", line 276, in result
    required_status=(JobStatus.DONE,)):
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/providers/ibmq/job/ibmqjob.py", line 874, in _wait_for_completion
    self.job_id(), timeout=timeout, wait=wait, status_queue=status_queue)
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/providers/ibmq/api/clients/account.py", line 369, in job_final_status
    job_id=job_id, timeout=timeout, status_queue=status_queue)
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/providers/ibmq/api/clients/account.py", line 421, in _job_final_status_websocket
    self.client_ws.get_job_status(job_id, timeout=timeout, status_queue=status_queue))
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/nest_asyncio.py", line 98, in run_until_complete
    return f.result()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/futures.py", line 178, in result
    raise self._exception
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/tasks.py", line 225, in __step
    result = coro.throw(exc)
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/providers/ibmq/api/clients/websocket.py", line 260, in get_job_status
    websocket = await self._connect(url)
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/providers/ibmq/api/clients/websocket.py", line 169, in _connect
    raise ex
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/qiskit/providers/ibmq/api/clients/websocket.py", line 165, in _connect
    websocket = await connect(url)
  File "/Users/user/Documents/QISJOB/lib/python3.7/site-packages/websockets/client.py", line 535, in __await_impl__
    transport, protocol = await self._create_connection()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 986, in create_connection
    ssl_handshake_timeout=ssl_handshake_timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 1014, in _create_connection_transport
    await waiter
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/futures.py", line 260, in __await__
    yield self  # This tells Task to wait for completion.
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/tasks.py", line 292, in __wakeup
    future.result()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/futures.py", line 178, in result
    raise self._exception
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/sslproto.py", line 526, in data_received
    ssldata, appdata = self._sslpipe.feed_ssldata(data)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/sslproto.py", line 189, in feed_ssldata
    self._sslobj.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 763, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
jwoehr commented 3 years ago

As far as the mpl thing, I think you are right. As for the certificate problem, I'm not experiencing that. Someone was saying IBMQ had been down for a while last night. Does it work now? In any case, there's a weirdness in some levels of Python about the certs and you have to set an env variable. I'm not experiencing the weirdness on this machine but on one of mine, I have to set like this: export SSL_CERT_FILE=$(python3 -c "import certifi; print(certifi.where())")

omarcostahamido commented 3 years ago

Thank you. It is working now. did not had to set the env variable. Should we add this note to the readme?