시작하기¶
설치하기¶
Qiskit은 Python 3.7이상을 지원한다. 하지만 Python과 Qiskit 모두 계속 개발중이며, 때때로 새 릴리스가 하나 또는 다른 버전에서 발생하는 경우 호환성에 문제가 발생할 수 있다.
과학 계산을 위해서 교차 사용이 가능한 Python 배포본인 아나콘다 (Anaconda) 를 설치하는 것을 추천한다. 아나콘다에 포함된 Jupyter 패키지를 이용하여 Qiskit을 사용하는 것을 추천한다.
Qiskit을 다른 응용 프로그램과 분리해서 설치하고 사용자 경험을 증진시키기 위해서 Python을 가상 환경에 설치하는 것을 추천한다.
가상 환경을 사용하기 위한 가장 손쉬운 방법은 아나콘다(Anaconda) 에 포함되어 있는 conda
명령어를 사용하는 것이다. 콘다(Conda) 환경은 특정 버전의 Python 이나 라이브러리 등을 선택할 수 있게 해준다. 작업하고자 하는 디렉토리에서 터미널 창을 연다.
아나콘다 (Anaconda) 와 함께 설치된 아나콘다 프롬프트를 사용하는 것을 권장한다. 아나콘다 내에 가상 환경을 만들고, 이 환경을 활성화하기만 하면 된다. 이 명령어들은 윈도우/리눅스인지에 상관없이 아나콘다 프롬프트에서 실행할 수 있다.
Python만 설치된 최소 환경을 작성한다.
conda create -n ENV_NAME python=3
새로운 환경을 활성화하라.
conda activate ENV_NAME
그런 다음 Qiskit 패키지를 설치한다.
pip install qiskit
만약 패키지가 제대로 설치되었다면, conda list
명령어를 실행하여 현재 가상 환경에서 설치된 패키지를 볼 수 있다.
시각화 기능 또는 Jupyter 노트북을 사용하려는 경우 추가 visualization
을 사용하여 Qiskit을 설치하는 것이 좋다.
pip install qiskit[visualization]
Zsh 사용자 (최신 버전의 macOS 기본 쉘) 인 경우 qiskit[visualization]
을 따옴표로 묶어야 한다:
pip install 'qiskit[visualization]'
다음의 클라우드 환경을 이용하면 별도의 설치 없이 Qiskit을 사용할 수 있다.
IBM Quantum Lab
Build quantum applications and experiments with Qiskit in a cloud programming environment.

Strangeworks
A platform that enables users and organizations to easily apply quantum computing to their most pressing problems and research.

소스 코드로부터 구성 요소를 설치하면 PyPI (Python Package Index) 저장소에 있는 버전을 사용하는 대신 가장 최근에 업데이트된 Qiskit 버전에 액세스할 수 있다. 이렇게 하면 Qiskit 코드의 최신 버전을 보다 효율적으로 검사하고 확장할 수 있다.
소스의 요소 및 구성 요소를 설치할 때 기본적으로 안정된 stable
버전 (공개된 pip
패키지들과 동일한 코드베이스를 포함한다)이 아니라 개발 development
버전(마스터 master
깃 브랜치에 해당한다)이 사용된다. 요소나 구성 요소의 development
버전은 대개 새로운 특징들과 변화들을 포함하기 때문에 일반적으로 나머지 항목들도 development
버전을 사용해야 한다.
Terra 및 Aer 패키지에는 설치하기 전에 소스에서 빌드하는 데 필요한 컴파일러가 필요하다. Ignis, Aqua 및 IBM Quantum Provider 백엔드는 컴파일러를 필요로 하지 않는다.
소스 코드로 부터 구성 요소를 설치하려면 다음과 같은 설치 순서가 필요하며 pip
버전이 소스 버전 뒤에 있는 경우에는 원하는구성 요소보다 낮을 수 있는 요소의 버전을 설치하지 않아도 된다.
qiskit-ibmq-provider (만약 IBM Quantum 장치나 온라인 시뮬레이터 장치에 접속하려면)
몇몇 개의 구성 요소나 요소를 동시에 사용하고자 한다면 각각의 요소에 대해 다음 단계를 거치도록 하라.
참고
Python에서 명칭 공간의 패키지 사용법 때문에 패키지를 설치할 때 주의를 기울여야 한다. 만약 소스로부터 어떤 요소를 설치하고자 할 때, Qiskit
메타-패키지를 사용하지 말라. 또한 이 가이드를 따라 개발을 위해 따로 마련한 가상 환경을 이용하라. 만약 개발을 위해 이미 존재하고 있는 설치 패키지와 섞어서 사용하기 원한다면, 함께 사용할 수 있는 설치 방법의 조합을 설명한 이 문서 (https://github.com/pypa/sample-namespace-packages/blob/master/table.md)를 참조하라.
Set up the Virtual Development Environment
conda create -y -n QiskitDevenv python=3
conda activate QiskitDevenv
Installing Terra from Source
소스 코드에서 설치하려면 C++11을 지원하는 시스템에서 C++ 컴파일러가 있어야 한다.
대부분의 Linux 플랫폼에서는 필요한 GCC 컴파일러가 이미 설치되어 있다.
만약 macOS를 사용하고 있다면, XCode를 설치하면 Clang 컴파일러를 설치할 수 있다. XCode와 Clang이 설치되어 있는지 확인하기 위해서는 터미널를 열고 다음 명령어를 입력하라.
clang --version
다음 명령어를 사용하여 XCode와 Clang을 설치한다.
xcode-select --install
Windows에서는 Build Tools for Visual Studio 2019 에서 비주얼 C++ 컴파일러를 설치하기가 가장 쉽다. Visual Studio 버전 2015 또는 2017을 대신 설치하여 C++ 컴파일러 설치 옵션을 선택할 수도 있다.
일단 컴파일러가 설치되면, Qiskit Terra를 설치할 준비가 된 것이다.
Terra 코드 저장소를 복제한다.
git clone https://github.com/Qiskit/qiskit-terra.git
저장소를 복제하면
qiskit-terra
라고 하는 로컬 폴더가 작성된다.cd qiskit-terra
qiskit-terra
디렉토리에서 Python 요구사항 라이브러리를 설치한다.pip install cython
만약 테스트 코드를 실행하거나 철자법 검사를 하고자 한다면, 개발자 요구사항 라이브러리를 설치하라.
pip install -r requirements-dev.txt
qiskit-terra
를 설치.pip install .
편집 가능한 모드(프로젝트에서 코드를 변경할 때 재설치할 필요 없는 경우)로 설치하려면 다음의 명령어를 사용하여 설치하면 된다.
pip install -e .
Terra를 설치한 이후에 예제 코드들을 실행해 볼 수 있다. 이를 위해서는 다음 명령어를 실행한다.
python examples/python/using_qiskit_terra_level_0.py
참고
다른 구성 요소를 설치하지 않으려는 경우 Qiskit-terra는 Qiskit-aer와 Qiskit-ibmq 제공자가 모두 설치되지 않았다는 RuntimeWarning
경고를 표시한다. 이는 사용자가 일반적으로 추가 요소를 사용하려고 하지만, 추가 요소가 설치되지 않았거나, Aer 또는 IBM Quantum Provider의 설치가 어떤 이유로 실패했다는 것을 인식하지 못하기 때문이다. 이러한 경고를 표시하지 않으려면 다음을 추가한다.
import warnings
warnings.filterwarnings('ignore', category=RuntimeWarning,
module='qiskit')
위의 코드는 qiskit
을 가져오는 부분 전에 추가되어야 한다. 이렇게 하면 누락된 qiskit-aer 및 qiskit-ibmq 제공자에 대한 경고가 표시되지 않지만, qiskit 또는 다른 패키지에 대한 경고들은 계속 표시될 것이다.
Installing Aer from Source
Aer 저장소를 복제한다.
git clone https://github.com/Qiskit/qiskit-aer
빌드 요구사항을 설치한다.
pip install cmake scikit-build cython
이 후 Aer를 설치하는 단계는 사용 중인 운영 체제에 따라 달라진다. Aer는 Python 인터페이스를 갖춘 컴파일된 C++ 프로그램이기 때문에 운영체제에 따라 보편적으로 설치가 불가능한 Aer 바이너리를 구축하기 위한 non-Python 의존성이 존재한다.
Linux
컴파일러 요구사항을 설치한다.
Aer 를 빌드하려면 C++ 컴파일러와 개발 헤더들이 필요하다.
Fedora 또는 동등한 Linux 배포판을 사용하는 경우에는 다음을 사용하여 설치한다.
dnf install @development-tools
Ubuntu/Debian 에서 다음을 사용하여 설치한다:
apt-get install build-essential
OpenBLAS 개발 헤더를 설치한다.
Fedora 또는 동등한 Linux 배포판을 사용하는 경우에는 다음을 사용하여 설치한다.
dnf install openblas-devel
Ubuntu/Debian 에서 다음을 사용하여 설치한다:
apt-get install libopenblas-dev
macOS
Windows
Windows에서는 모든 종속 프로그램/라이브러리 를 설치하기 위해 Anaconda3 나 Miniconda3 를 사용한다.
컴파일러 요구사항을 설치한다.
conda install --update-deps vs2017_win-64 vs2017_win-32 msvc_runtime
Qiskit Aer는 양자 회로를 위한 고성능 시뮬레이터 프레임워크이다. 이는 여러가지 시뮬레이션 목적을 이루기 위해서 다양한 백엔드 들을 제공한다.
conda install --update-deps -c conda-forge -y openblas cmake
qiskit-aer를 직접 빌드하고 설치한다.
Pip 버전 19.0.0 이하를 설치하였고, 본인의 환경이 사용자 빌드를 요구하지 않으면 다음을 실행한다:
cd qiskit-aer pip install .
이렇게 하면 바이너리가 빌드되고 Aer가 설치된다.
또는 더 최신인 pip가 설치되어 있거나 사용자 지정 요구 사항이 있는 경우 Python 휠을 수동으로 빌드할 수 있다.
cd qiskit-aer python ./setup.py bdist_wheel
휠 빌드 중에 사용자 지정 옵션을 설정해야 하는 경우 휠 제작 중 사용자 정의 옵션 를 참조하라.
Python 휠을 만든 후에는 Aer 저장소의
dist/
dir에 저장된다. 정확한 버전은cd dist pip install qiskit_aer-*.whl
출력 휠 파일의 정확한 파일 이름은 개발 중인 Aer의 현재 버전에 의존한다.
Custom options
Aer 빌드 시스템은 Python 인터페이스로 컴파일을 빌드할 때 scikit-build 을 사용하여 컴파일을 실행한다. 이것은 setuptools 의 인터페이스 역할을 하여 CMake 를 호출하고 로컬 시스템의 바이너리를 컴파일한다.
바이너리를 컴파일하는 복잡성으로 인해 빌드 프로세스의 특정 부분에 옵션을 전달해야 할 수 있다. 변수를 패스하는 방법은 다음과 같다.
python setup.py bdist_wheel [skbuild_opts] [-- [cmake_opts] [-- build_tool_opts]]
여기서 대괄호 [] 안에 있는 요소들은 선택적이며 skbuild_opts
, cmake_opts
, build_tool_opts
는 사용자의 선택에 대한 플래그로 대체된다. CMake 옵션 목록은 https://cmake.org/cmake/help/v3.6/manual/cmake.1.html#options 에서 사용할 수 있다. 예를 들어, 다음과 같이 실행할 수 있다:
python setup.py bdist_wheel -- -- -j8
이것은 기본 빌드 시스템(이 경우 Automake)에 플래그 -j8 을 전달하여 8개의 프로세스를 사용하여 병렬로 빌드하고 싶다는 것을 알려준다.
예를 들어, Linux에서 이러한 플래그에 대한 일반적인 사용 사례는 (기본값이 너무 오래된 경우) 사용할 C++ 컴파일러의 특정 버전을 지정하는 것이다:
python setup.py bdist_wheel -- -DCMAKE_CXX_COMPILER=g++-7
위의 코드는 Aer를 컴파일할 때 기본 g++ 대신 g++-7 명령어를 사용하도록 CMake에게 지시한다.
다른 이의 흔한 활용 예로써 환경에 따라 플랫폼 이름을 지정하고 정적 연결을 해제해야 할 수도 있다.
python setup.py bdist_wheel --plat-name macosx-10.9-x86_64 \
-- -DSTATIC_LINKING=False -- -j8
여기서 --plat-name
은 패키지 메타데이터에 사용할 플랫폼 이름을 지정하기 위한, setuptools를 위한 플래그이다. -DSTATIC_LINKING
은 CMake를 사용하여 정적 연결을 비활성화하는 플래그이며, -j8
은 오토메이크를 사용하여 8개의 프로세스를 컴파일에 사용하는 플래그이다.
플랫폼에 따라 일반적으로 사용되는 옵션의 목록은 다음과 같다.
플랫폼 |
도구 |
옵션 |
활용 예시 |
---|---|---|---|
전체 |
오토메이크(Automake) |
-j |
숫자와 함께 사용되어서, 컴파일 시 사용할 프로세서의 수를 결정한다. |
Linux |
CMake |
-DCMAKE_CXX_COMPILER |
특정 C++ 컴파일러를 명시하기 위해 사용된다. 이 옵션은 보통 기본 g++ 컴파일러가 너무 오래 되었을 때 사용된다. |
OSX |
셋업툴 (setuptools) |
–plat-name |
출력 Python 패키지에서 플랫폼 이름을 명시하기 위해 사용된다. |
OSX |
CMake |
-DSTATIC_LINKING |
정적 연결을 사용할지 안 사용할지 결정하는데 사용된다. |
참고
이러한 몇몇 옵션들은 플랫폼에 좌우되지 않는다. 이러한 특정 플랫폼들은 환경에서 일반적으로 사용되기 때문에 여기 나열되었다. 더 많은 정보를 위해서는 도구 문서를 참조하라.
Installing Ignis from Source
Ignis 코드 저장소를 복제한다.
git clone https://github.com/Qiskit/qiskit-ignis.git
저장소를 복제하면
qiskit-ignis
라는 이름의 로컬 디렉토리가 생성된다.cd qiskit-ignis
만약 테스트를 하거나 철자법 검사를 하려면, 개발자 필수 요소를 설치하라. 이것은 소스로 부터 qiskit-ignis 패키지를 설치하거나 사용할 때는 필요하지 않다.
pip install -r requirements-dev.txt
Ignis 설치하기.
pip install .
수정 가능한 모드로 설치하고 싶은 경우, 즉 프로젝트의 코드가 변화하였을 때 적용시키기 위해 재설치가 필요 없는 경우:
pip install -e .
Installing IBM Quantum Provider from Source
qiskit-ibmq-provider 코드 저장소를 복제한다.
git clone https://github.com/Qiskit/qiskit-ibmq-provider.git
저장소 복제는
qiskit-ibmq-provider
이라는 이름의 로컬 디렉토리를 생성한다.cd qiskit-ibmq-provider
만약 테스트를 하거나 스타일(linting) 검사를 하려면, 개발자 필수 요소를 설치하라. 이때 소스로부터 설치하는 경우에는 qiskit-ibmq-provider 패키지를 설치하거나 사용할 필요가 없다.
pip install -r requirements-dev.txt
qiskit-ibmq-provider 설치하기.
pip install .
수정 가능한 모드로 설치하고 싶은 경우, 즉 프로젝트의 코드가 변화하였을 때 적용시키기 위해 재설치가 필요 없는 경우:
pip install -e .
플랫폼 지원¶
Qiskit은 최대한 많은 플랫폼을 지원하기 위해 노력하지만, 사용 가능한 테스트 자원 및 플랫폼 가용성의 한계로 인해 모든 플랫폼을 지원할 수는 없다. Qiskit에 대한 플랫폼 지원은 3개의 계층으로 나뉘며 각 계층마다 지원 수준이 다르다. 이러한 플랫폼 이외의 플랫폼에서 Qiskit은 여전히 설치 가능하지만 테스트되지 않았으며 Qiskit(및 Qiskit의 종속 항목) 을 소스로부터 가져와야 한다.
또한 Qiskit은 CPython만 지원한다. 다른 Python 인터프리터를 사용하는 것은 현재 지원되지 않는다.
계층 1¶
계층 1 지원 플랫폼은 제안된 변경사항이 올바르게 작동하는지 확인하기 위해 개발 프로세스의 일부로 테스트된다. 사전 컴파일된 바이너리는 릴리스 프로세스의 일부로 빌드, 테스트 및 PyPI에 공개된다. 이러한 플랫폼은 모든 종속 프로그램을 사용할 수 있기 때문에 작동하는 Python 환경만으로 설치가 가능할 것으로 예상된다.
계층 1 플랫폼은 다음과 같다:
Linux x86_64 (manylinux 2014 패키징 스펙과 호환 가능한 배포판).
macOS x86_64 (10.9 또는 최신 버전)
윈도우 64비트
계층 2¶
계층 2 플랫폼은 개발 프로세스의 일부로 테스트를 거치지 않는다. 그러나 사전 컴파일된 바이너리는 릴리스 프로세스의 일부로 빌드, 테스트 및 PyPI에 공개되며 이러한 패키지는 단지 작동하는 Python 환경에서 설치가 가능할 것으로 예상된다.
계층 2 플랫폼은 다음과 같다:
Linux i686 (Python < 3.10) 용 Linux i686 ( manylinux 2014 패키징 스펙과 호환 가능)
Python <3.10용 윈도우 32비트
Linux aarch64 (패키징 사양과 호환되는 배포판 manylinux 2014 <https://www.python.org/dev/peps/pep-0599/>)
계층 3¶
계층 3 플랫폼은 개발 프로세스의 일부로 테스트되지 않는다. 사전 컴파일된 바이너리는 테스트 없이 릴리스 프로세스의 일부로 PyPI에 빌드되고 공개된다. 단순히 작동하는 Python 환경으로는 설치할 수 없으며, 설치 프로세스의 일부로 소스의 종속 프로그램을 빌드하기 위해 C/C++ 컴파일러 또는 추가 프로그램이 필요할 수 있다. 이러한 플랫폼에 대한 지원은 최선의 노력이다.
계층 3 플랫폼은 다음과 같다:
Python >= 3.10용 Linux i686 (manylinux 2014 패키징 사양과 호환되는 배포판)
Windows 32 bit for Python >= 3.10
macOS arm64 (10.15 또는 최신 버전)
시작할 준비가 다 되었다면…¶
Qiskit from the ground up
Learn how to build, execute, and post-process quantum circuits with Qiskit.
Start learning QiskitDive into the tutorials
Find out how to leverage Qiskit for everything from single-circuits to full quantum application development.
Qiskit tutorials