Qiskit C APIをインストールする
このガイドでは、Qiskit C API のインストール方法と使用方法について説明します。 インストールが完了したら、 「Qiskit C API を使用した Python の拡張」 をお読みください。
以下の例では、C言語でobservableを構築しています:
// file: example.c
#include <stdio.h>
#include <stdint.h>
#include <qiskit.h>
int main(int argc, char *argv[]) {
// build a 100-qubit empty observable
uint32_t num_qubits = 100;
QkObs *obs = qk_obs_zero(num_qubits);
// add the term 2 * (X0 Y1 Z2) to the observable
QkComplex64 coeff = {2, 0};
QkBitTerm bit_terms[3] = {QkBitTerm_X, QkBitTerm_Y, QkBitTerm_Z};
// bit terms: X Y Z
uint32_t indices[3] = {0, 1, 2}; // indices: 0 1 2
QkObsTerm term = {coeff, 3, bit_terms, indices, num_qubits};
qk_obs_add_term(obs, &term); // append the term
// print some properties and the observable itself
printf("num_qubits: %i\n", qk_obs_num_qubits(obs));
printf("num_terms: %lu\n", qk_obs_num_terms(obs));
printf("observable: %s\n", qk_obs_str(obs));
// free the memory allocated for the observable
qk_obs_free(obs);
return 0;
}UNIXライク
このセクションでは、UNIXライクなシステム用のビルド手順を説明する。
要件
コンパイルには以下のツールが必要:
- Rustコンパイラ: 例えば Qiskitをソースからインストールするガイドを参照してください
- C コンパイラ:例えば、 Linux の GCC や MacOS の Clang など。 QiskitのC APIは、標準に準拠したコンパイラと互換性があります。 C11 規格に準拠したコンパイラと互換性があります。
/path/to/.cargo/bincbindgen: Cヘッダーを作成するためのツールで、以下のコマンドでインストールできます。cargo install cbindgenコマンドラインからこのツールを実行できるようにしておく必要があります。そのためには、変数をエクスポートして.PATHをインクルードする必要がある場合があります。- Python ライブラリがインストール済み( Python 3.9 +):動的リンク時には、 Python ライブラリが必要です。
libpythonPython は実行時には使用されず、インタプリタも初期化されることはない点に注意してください。定義する必要があるのは、に含まれる一部のシンボルだけです。 詳細については、本号をご覧ください。 - (GNU) Make: これはオプションですが、自動インストールプロセスを使用することを推奨します。
このコードは、すべてがインストールされたことを確認する:
rustc --version
gcc --version
cbindgen --version
make --version # optional, but recommendedビルド
Cヘッダとライブラリをビルドするには、Qiskitルートで以下のMakeコマンド1 、
make cこれは、 dist/c/lib のコンパイル済み共有ライブラリと、 qiskit.h のヘッダーと、 のすべての関数宣言を提供する。 dist/c/includeのすべての関数宣言を提供する。 正確なライブラリ名はプラットフォームに依存する。 例えば、UNIXではlibqiskit.so 、 MacOS では libqiskit.dylib となります。
(現在、このステップは多くの警告を発しているが、これは予想されたことであり、心配する必要はない。 将来のバージョンでは警告は削除される)
その後、Qiskit Cヘッダーとライブラリを使用してCプログラムをコンパイルできます:
gcc example.c -o example.o -I /path/to/dist/c/include -L /path/to/dist/c/lib -lqiskitリンク時にQiskitライブラリが見つかるようにするには、ランタイムライブラリパスを次のように設定します。 インクルード /path/to/dist/c/lib. ダイナミック・リンク時に Python ライブラリがデフォルトで利用できない場合、 も追加する必要がある。 これらのコマンドはプラットフォームによって異なる。 Linux の場合:
export LD_LIBRARY_PATH=/path/to/dist/c/lib:$LD_LIBRARY_PATH
# On Linux, the Python library is typically included
# in the dynamic library path by default.
export LD_LIBRARY_PATH=/path/to/python/lib:$LD_LIBRARY_PATHMacOS の場合:
export DYLD_LIBRARY_PATH=/path/to/dist/c/lib:$DYLD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=/path/to/python/lib:$DYLD_LIBRARY_PATHあるいは、コンパイル時にランタイム・ライブラリのパスを設定することもできます
-Wl,-rpath,/path/to/dist/c/lib
# same for Python
をコンパイラ・フラグに追加する。 さらに、 Python ライブラリはダイナミックリンク時に利用可能である必要がある。 Linux 環境では がデフォルトである。
これでバイナリを実行できる:
./example.oと表示されるはずである
num_qubits: 100
num_terms: 1
observable: SparseObservable { num_qubits: 100,
coeffs: [Complex { re: 2.0, im: 0.0 }],
bit_terms: [X, Y, Z],
indices: [0, 1, 2],
boundaries: [0, 3] }
Windows (US)
このセクションでは、Windowsシステム用のビルド手順を説明します。
Windows で C API を使用するには、2 つの独立した方法があります
- Qiskit C API を使用する Python 拡張モジュールを構築します。 手順1~5に従ってください。
qiskitこの方法では、 Python パッケージに同梱されているCヘッダーを使用するため、Rustやcbindgenは必要ありません。 - UNIX系セクションで行われているように、純粋なCプログラムからリンクするためのスタンドアロンCライブラリをビルドします。 手順 1 を完了したら、 「スタンドアロンライブラリのビルド」 のセクションに進んでください。そこには追加の要件が記載されています。
要件
- 一部の手順では、管理者権限が必要です。
- 5~8 GBの空きディスク容量。
- C言語コンパイラ:Microsoft Visual C++ (MSVC)。手順1でインストール済み。
- 手順 1 でインストールした 64 ビット版の Python ( 3.10 以降)。
開始前に
ワークスペースを作成してください。 これは、ローカルドライブ上の短いパスである必要があります。 OneDrive-synced フォルダ(「ドキュメント」や「デスクトップ」など)、ネットワークドライブ、およびスペースや非ASCII文字を含むパスは使用しないでください。 ユーザー名に英語以外の文字が含まれている場合は、そのユーザー名をユーザーフォルダの下に置かないでください。
適切なワークスペースパスの例: C:\workspace, D:\workspace, C:\Users\john\workspace
ステップ 1. 前提条件のインストール
このファイルは容量が大きいため(2~5 GB、ダウンロードに10~30分かかります)、ダウンロードには時間がかかります。 まずインストールして、お使いのパソコンが対応しているかどうかをすぐに確認してください。
Note管理者権限が必要です。
オプション A —
wingetPowerShell のターミナルを開き、以下のコマンドを実行します:winget install Microsoft.VisualStudio.2022.BuildTools --override "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --passive --wait"インストーラーの実行中、ターミナルがフリーズしているように見えます。 これは正常な現象であり、10~30分ほどかかります。 タスクバーに「Visual Studio Installer」ウィンドウが表示されているか確認してください。
が認識されない場合は
winget、Microsoft Store から App Installer を更新するか、方法 B をご利用ください。オプション B — 手動でのダウンロード 「 Visual Studio Build Tools for C++ 」の Web サイトを開き、「Build Tools をダウンロード」をクリックします。 実行ファイルを実行して、インストールを開始してください。
「Visual Studio のインストール」ウィンドウが開いたら、「ワークロード」タブで「C++ によるデスクトップ開発」を選択します。詳細については、 「Visual Studio への C および C++ サポートのインストール 」のページを参照してください。
winget install Microsoft.VisualStudio.CodeVisual Studio Code のサイトからVS Codeをダウンロードするか、以下のコマンドを実行してください。 ダウンロードした実行ファイルを実行して、VS Code をインストールしてください。インストールが完了したら、次の手順に進んでください:
- VS Code を開く
C:\workspace[ファイル] → [フォルダを開く] をクリックし、ワークスペース(例:)を選択します。- 「ターミナル」→「新しいターミナル」をクリックして、 PowerShell のターミナルを開きます。
- 左側の「拡張機能」アイコンをクリックするか、Ctrl+Shift+X キーを押してください。
ms-vscode.cpptools``ms-toolsai.jupyter``ms-python.python「拡張機能」ウィンドウで、、、を検索してインストールしてください。
特に指示がない限り、このガイドに記載されている残りのコマンドは、VS Codeのターミナルで実行してください。 VS Codeのターミナルは、Windowsの標準コマンドプロンプトとの混同を防ぐため、デフォルトで PowerShell, に設定されています。
ワークスペース変数を設定します。
workspaceたとえば、ワークスペースの名前が である場合は、次のように実行してください:$WORKSPACE = "C:\workspace" # change to your workspace path mkdir $WORKSPACE -Force cd $WORKSPACEPython 3.12 は、およびその他の依存関係に対して
qiskit-aer最も入手しやすいホイールを備えているため、推奨されます。 3.10 また、 3.11 も動作しますが、 3.13 以降では、一部のパッケージについて、あらかじめビルド済みのホイールが用意されていない場合があります。VS Codeのターミナルを開き、以下のコードを実行して、 Python の適切なバージョンを検出してください:
# ── Pre-checks ─────────────────────────────────────────────────────────────── if ($env:CONDA_DEFAULT_ENV -or $env:CONDA_PREFIX) { Write-Warning "Conda is active. Run 'conda deactivate' first, or open a new terminal." return } if ($env:VIRTUAL_ENV) { Write-Warning "A virtual environment is active: $env:VIRTUAL_ENV — run 'deactivate' first." return } # ── Detect Python ──────────────────────────────────────────────────────────── $PYTHON_EXE = $null try { $ver = (py -3 --version 2>&1) -replace "Python ", "" $bits = py -3 -c "import platform; print(platform.architecture()[0])" $path = py -3 -c "import sys; print(sys.executable)" if ($path -match "(?i)(anaconda|miniconda|miniforge|mambaforge|[/\\]conda[/\\]|[/\\]envs[/\\])") { Write-Host "Skipping conda-managed Python at: $path" } elseif ([version]$ver -ge [version]"3.10" -and $bits -eq "64bit") { $PYTHON_EXE = $path Write-Host "Python $ver (64-bit) found: $PYTHON_EXE" } else { Write-Host "Skipping ($ver, $bits) — need 3.10+ 64-bit" } } catch {} if (-not $PYTHON_EXE) { try { $ver = (python --version 2>&1) -replace "Python ", "" $bits = python -c "import platform; print(platform.architecture()[0])" $path = python -c "import sys; print(sys.executable)" if ($path -match "(?i)(anaconda|miniconda|miniforge|mambaforge|[/\\]conda[/\\]|[/\\]envs[/\\])") { Write-Host "Skipping conda-managed Python at: $path" } elseif ([version]$ver -ge [version]"3.10" -and $bits -eq "64bit") { $PYTHON_EXE = $path Write-Host "Python $ver (64-bit) found: $PYTHON_EXE" } else { Write-Host "Skipping ($ver, $bits) — need 3.10+ 64-bit" } } catch {} } # Install Python 3.12 if it wasn't found. if (-not $PYTHON_EXE) { Write-Host "Not found. Installing Python 3.12..." winget install Python.Python.3.12 Write-Host "Close and reopen the terminal, then rerun this snippet." } if ($PYTHON_EXE -and ($PYTHON_EXE -match '[^\x20-\x7E]')) { Write-Warning "Python path has non-ASCII characters. Keep your workspace on an ASCII path." } if ($PYTHON_EXE) { Write-Host "`$PYTHON_EXE = '$PYTHON_EXE'" }ダウンロードがうまくいかなかった場合、または手動でのダウンロードをご希望の場合は、 Python 3.12 をインストールするコード行をコメントアウトし、 Python のウェブサイトから Python 3.12 をダウンロードしてください。 実行ファイルを実行して、 Python をインストールしてください。 インストール中に「 Python をPATHに追加」を選択し、その後、上記のスニペットを再実行して、ファイルが正しく検出されることを確認してください。
ノート-
Microsoft Storeの Python は、C言語のヘッダーファイルが含まれていないため、絶対に使用しないでください。 Microsoft Store が開いてしまう
python場合は、[Windowsの設定] → [アプリ] → [アプリの詳細設定] → [アプリの実行エイリアス] の順に選択し、エイリアスを無効にしてください。 -
Anacondaをご利用の方:(base)というプレフィックスが消えるまで実行
conda deactivateしてください。 それでも解決しない場合は、VS Codeで新しいターミナルを開いてください。
-
ラボのリポジトリをクローンする場合にのみ必要です。
winget install Git.Gitを実行します。
ステップ 2 - Qiskit を使用して、 Python の仮想環境を設定する
VS Codeのターミナルを開き、リセットします:
$WORKSPACE = "C:\workspace" # change to your workspace path if (-not $PYTHON_EXE) { if (Get-Command py -ErrorAction SilentlyContinue) { $PYTHON_EXE = py -3 -c "import sys; print(sys.executable)" } elseif (Get-Command python -ErrorAction SilentlyContinue) { $PYTHON_EXE = python -c "import sys; print(sys.executable)" } else { Write-Host "Python not found — complete Step 1.3 first." ; return } Write-Host "`$PYTHON_EXE = '$PYTHON_EXE'" }スクリプトの実行を許可し(ユーザーごとに1回)、その後、仮想環境を作成します:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned cd $WORKSPACE & $PYTHON_EXE -m venv .venv --prompt workspace .\.venv\Scripts\Activate.ps1アクティベーションの際に「スクリプトが無効になっています」という赤いエラーが表示された場合、その
Set-ExecutionPolicy行は実行されませんでした。 手動で実行してから、もう一度試してみてください。(workspace)プロンプトには、現在 が表示されているはずです。以下を確認
Get-Command python | Select-Object -First 1 -ExpandProperty Source # → workspace\.venv\Scripts\python.exepython -m pip install --upgrade pip setuptools wheel pip install "qiskit[visualization]>=2.4.2" pip install --prefer-binary qiskit-ibm-runtime qiskit-aer pip install notebook ipykernel ipywidgets # optional: run the following Python steps in Jupyter--prefer-binaryソースからのコンパイルqiskit-aerを回避します。 それでもうまくいかない場合はqiskit-aer、を試すpip install qiskit-aer --only-binary=:all:か、その手順をスキップしてください。qiskit-aerこれはオプションであり、ローカルシミュレーションの場合にのみ必要です。Noteセットアップ後は絶対に実行
pip install --upgrade qiskitしないでください。 新しいマイナーバージョンにアップグレードすると、以前のバージョンに基づいてビルドされたC拡張機能が動作しなくなります。
ステップ 3 - MSVC 環境を読み込む
新しい Python セッションごとに(たとえば、Jupyterカーネルを再起動するたびに)、以下のコードを実行してください。 MSVCの開発環境を自動的に検出して読み込むため、 x64 の組み込みコマンドプロンプトを使用する必要はありません。
このドキュメントの例では、MSVC を使用して setuptools C 拡張モジュールをビルドしています。 qiskit.h``QISKIT_PYTHON_EXTENSION通常、init関数内で を定義し、 をインクルードし、 を呼び出します qk_import() 。 ビルド時には からの qiskit.capi.get_include() ヘッダーのみが必要であり、ライブラリはリンクされません。 詳細については、「 Python でC言語を使用してQiskitを拡張する」 を参照してください。
import os, sys, subprocess, glob, shutil def load_msvc_env(): if os.name != "nt": return "Not Windows — the system C compiler is used as-is." if shutil.which("cl"): return "cl.exe is already available in this kernel." pf86 = os.environ.get("ProgramFiles(x86)", r"C:\Program Files (x86)") pf = os.environ.get("ProgramFiles", r"C:\Program Files") vcvars = None vswhere = os.path.join(pf86, "Microsoft Visual Studio", "Installer", "vswhere.exe") if os.path.isfile(vswhere): # vswhere outputs UTF-8 regardless of system locale inst = subprocess.run( [vswhere, "-latest", "-products", "*", "-requires", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", "-property", "installationPath"], capture_output=True, text=True, encoding="utf-8").stdout.strip() if inst: cand = os.path.join(inst, "VC", "Auxiliary", "Build", "vcvars64.bat") if os.path.isfile(cand): vcvars = cand if not vcvars: pat = os.path.join("Microsoft Visual Studio", "*", "*", "VC", "Auxiliary", "Build", "vcvars64.bat") hits = glob.glob(os.path.join(pf86, pat)) + glob.glob(os.path.join(pf, pat)) if hits: vcvars = sorted(hits)[-1] if not vcvars: return ("Could not find vcvars64.bat. Install MSVC Build Tools (Step 1.3), " "or launch Jupyter from the x64 Native Tools Command Prompt.") # cmd.exe outputs in the OEM codepage (cp437/cp850/etc.), not the ANSI codepage out = subprocess.run(f'"{vcvars}" >nul 2>&1 && set', capture_output=True, text=True, encoding="oem", shell=True).stdout for line in out.splitlines(): if "=" in line: k, _, v = line.partition("=") os.environ[k] = v return ("Loaded MSVC from:\n " + vcvars) if shutil.which("cl") \ else "Ran vcvars64.bat but cl.exe is still not found — check your MSVC install." print(load_msvc_env()) print("cl.exe on PATH:", shutil.which("cl") is not None)セットアップが正常に完了したことを確認してください:
import importlib.util, shutil checks = { "setuptools": importlib.util.find_spec("setuptools") is not None, "wheel": importlib.util.find_spec("wheel") is not None, "cl.exe": shutil.which("cl") is not None, } for name, ok in checks.items(): print(f" [{'PASS' if ok else 'FAIL':>4}] {name}") if not checks["cl.exe"]: print("\n cl.exe is not on PATH. rerun the cell above to load the MSVC environment.") elif all(checks.values()): print("\n Toolchain ready. Continue to the smoke test.")
ステップ 4 - スモークテスト:C 拡張モジュールをビルドする
次のコードを実行してください。 _smoke_pkg/ソースファイルを に書き出し、Qiskit C API に基づいて C 拡張機能をビルドし、その結果をインポートします。 「SMOKE TEST PASSED」と表示されれば、ツールチェーンの準備は完了です。
このパッケージは、 「 Python でC言語を使用してQiskitを拡張する」 の手順に従っており、 Qiskit C APIリファレンスに記載されている関数を使用しています。
import sys, subprocess, pathlib, importlib root = pathlib.Path("_smoke_pkg") pkg = root / "src" / "qgss_smoke" pkg.mkdir(parents=True, exist_ok=True) (root / "pyworkspace.toml").write_text(""" [build-system] requires = ["setuptools", "qiskit>=2.4.2"] build-backend = "setuptools.build_meta" [workspace] name = "qgss_smoke" version = "0.0.1" dependencies = ["qiskit>=2.4.2"] [tool.setuptools] package-dir = {"" = "src"} """.lstrip()) (root / "setup.py").write_text(""" import qiskit from setuptools import setup, Extension core_ext = Extension( name="qgss_smoke._core", sources=["src/qgss_smoke/_coremodule.c"], include_dirs=[qiskit.capi.get_include()], ) setup(ext_modules=[core_ext]) """.lstrip()) (pkg / "__init__.py").write_text("from . import _core\nbuild_demo = _core.build_demo\n") (pkg / "_coremodule.c").write_text(""" #define QISKIT_PYTHON_EXTENSION #include <Python.h> #include <qiskit.h> #include <stdint.h> static PyObject *build_demo(PyObject *self, PyObject *args) { QkCircuit *qc = qk_circuit_new(2, 0); uint32_t q0[1] = {0}; qk_circuit_gate(qc, QkGate_H, q0, NULL); uint32_t q1[1] = {1}; qk_circuit_gate(qc, QkGate_X, q1, NULL); return qk_circuit_to_python_full(qc); } static PyMethodDef core_methods[] = { {"build_demo", build_demo, METH_NOARGS, "Build a 2-qubit demo circuit in C."}, {NULL, NULL, 0, NULL}, }; static struct PyModuleDef core_module = { .m_base = PyModuleDef_HEAD_INIT, .m_name = "_core", .m_methods = core_methods, }; PyMODINIT_FUNC PyInit__core(void) { if (qk_import() < 0) { return NULL; } return PyModuleDef_Init(&core_module); } """.lstrip()) # On Windows, an imported .pyd is file-locked by the OS. Drop the module from # sys.modules BEFORE pip install --force-reinstall, otherwise pip fails with # WinError 32 ("file in use") trying to overwrite the locked .pyd. if "qgss_smoke._core" in sys.modules: del sys.modules["qgss_smoke._core"] if "qgss_smoke" in sys.modules: del sys.modules["qgss_smoke"] r = subprocess.run( [sys.executable, "-m", "pip", "install", "--no-build-isolation", "--force-reinstall", "--quiet", str(root.resolve())], capture_output=True, text=True, ) if r.returncode != 0: output = (r.stderr + r.stdout).strip() print("BUILD FAILED:\n") print(output) if "WinError 32" in output or "being used by another process" in output: print("\n--- TIP ---") print("The .pyd file is locked because it was previously imported in this kernel.") print("Restart the kernel (Ctrl+Shift+P → 'Jupyter: Restart Kernel'), then rerun") print("the Step 3 MSVC cell first, then this cell again.") elif "cl.exe" in output.lower() or "vcvars" in output.lower() or "cannot find" in output.lower(): print("\n--- TIP ---") print("The compiler was not found. rerun the Step 3 cell to load the MSVC environment.") else: importlib.invalidate_caches() import qgss_smoke from qiskit import QuantumCircuit qc = qgss_smoke.build_demo() ops = dict(qc.count_ops()) ok = isinstance(qc, QuantumCircuit) and ops.get("h") == 1 and ops.get("x") == 1 print("Returned object is a QuantumCircuit:", isinstance(qc, QuantumCircuit)) print("Gates built in C:", ops) print("\nSMOKE TEST PASSED — your Windows toolchain can build Qiskit C extensions." if ok else "\nSomething is off — check the gates above.")
ステップ 5 — VS Code の設定(任意)
使いやすさを考慮して、以下の手順に従ってCファイル用の IntelliSense を設定し、「 Python 」インタプリタを自動選択するように設定することができます。
VS Codeのターミナルで、次のコードを実行してください:
mkdir $WORKSPACE\.vscode -Force次のコードを実行して、ワークスペースに
Create.vscode/settings.jsonを作成してください:{ "python.defaultInterpreterPath": "${workspaceFolder}/.venv/Scripts/python.exe", "python.terminal.activateEnvironment": true, "jupyter.notebookFileRoot": "${workspaceFolder}" }.vscode/c_cpp_properties.json以下のコードは、に貼り付ける必要があるJSONを出力します:import qiskit.capi inc = qiskit.capi.get_include().replace("\\", "/") print(".vscode/c_cpp_properties.json — create this file with the content below:\n") print('{') print(' "version": 4,') print(' "configurations": [') print(' {') print(' "name": "Win32",') print(f' "includePath": ["{inc}"],') print(' "defines": ["QISKIT_PYTHON_EXTENSION"],') print(' "compilerPath": "cl.exe",') print(' "cStandard": "c11",') print(' "intelliSenseMode": "windows-msvc-x64"') print(' }') print(' ]') print('}')VS Code で、以下の内容を含むファイルを作成
.vscode/extensions.jsonしてください:{ "recommendations": ["ms-python.python", "ms-toolsai.jupyter", "ms-vscode.cpptools"] }
スタンドアロンライブラリをビルドする
このセクションでは、スタンドアロンの C ライブラリをビルドします。これは、 「UNIX 系」 のセクションで説明されているように、純粋な C プログラムをコンパイルおよびリンクしたい場合にのみ必要となります。 ステップ 1 の前提条件に加え、この作業には以下のツールが必要です:
- Rustコンパイラ: 例えば Qiskitをソースからインストールするガイドを参照してください
cargo install cbindgencbindgen: Cヘッダーを作成するためのツールで、. を使ってインストールできます。 コマンドラインからのツール実行が有効になっている必要があります。そのためには、variableをPATH更新してcargoのパスを含める必要がある場合があります。- Python のインストール環境であり、およびの両
python3.lib方にアクセスできるものpython3.dll - Qiskit リポジトリのクローン (
git clone https://github.com/Qiskit/qiskit.git)
まず、QiskitのルートディレクトリにあるVS Code( PowerShell )のターミナルで、以下のコマンドを実行してダイナミックライブラリを
qiskit_cextコンパイルします$env:PATH = "\path\to\pythonlib;" + $env:PATH cargo rustc --release --crate-type cdylib -p qiskit-cextこれにより、
.dllダイナミック・ライブラリと関連する.dll.libファイルがtarget/releaseに生成される。 次にcbindgen --crate qiskit-cext --output dist\c\include\qiskit.hdist\c\includeこれにより、MSVC互換のヘッダーが.に書き込まれます。これで、Cプログラムをコンパイルできるようになりました
cl。 コンパイラが qiskit ライブラリを確実に検出できるようにするには、 変数PATHに を含めてtarget\releaseください。$env:PATH = "\path\to\target\release;" + $env:PATH cl example.c qiskit_cext.dll.lib -I\path\to\dist\c\includepython3.dll実行する前に、. のパスを指定してください。$env:PATH = "\path\to\python3-dll;" + $env:PATH .\example.exeと表示されるはずである
num_qubits: 100 num_terms: 1 observable: SparseObservable { num_qubits: 100, coeffs: [Complex { re: 2.0, im: 0.0 }], bit_terms: [X, Y, Z], indices: [0, 1, 2], boundaries: [0, 3] }
トラブルシューティング
Microsoft Store から App Installer を更新するか、該当する手動ダウンロードリンクをご利用ください
MSVCロードセル(ステップ3)を再実行するか、 x64 のネイティブツールコマンドプロンプトを使用してください
「設定」→「アプリ」→「アプリの詳細設定」→「アプリ実行エイリアス」の順に進み、オフにします
python.exe実行
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedしてから、再試行してください実行
python -c "import qiskit.capi; print(qiskit.capi.get_include())"して、パスが存在することを確認してください実行
pip install "qiskit[visualization]~=2.4.2"pip install qiskit-aer --only-binary=:all:を実行します。 それでもうまくいかない場合は、 Python 3.12 を使用するか、オプションである aer をスキップしてくださいビルドしたQiskit C拡張機能と、インストール済みのQiskitのバージョンは、同じでなければなりません。 次のコマンドでQiskitを再インストールします。
pip install "qiskit~=2.4.2"C拡張機能は、実行中に再インポートすることはできません。 カーネルを再起動し、MSVCのコマンド(手順3)を再度実行してから、再ビルドを行ってください
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedC:\workspaceC:\ 上の短いルートパス(例:、またはセットアップ手順で設定したパス)を使用するか、「長いパス」を有効にしてください:[設定] → [システム] → [開発者向け] → [長いパス]と
CONDA_PREFIXが環境から両方ともなくなるまでCONDA_DEFAULT_ENV実行conda deactivateする。$env:CONDA_PREFIX…にご確認ください。 それでも問題が解決しない場合は、新しい PowerShell (Anacondaプロンプトではないもの)を開き、手順2からやり直してください。この仮想環境はcondaのCランタイムを継承しており、その場で修正することはできません。 それを削除し、 Python のウェブサイトから Python ( 3.12 )をダウンロードして、再構築してください。
$PYTHON_EXE``Remove-Item -Recurse -Force .venv実行した後、ステップ1の Python 検出スニペットを再度実行して設定を行い、その後、仮想環境を再作成してください(ステップ2)。Conda が仮想環境に漏れ出している可能性があります。 この直上の2つの問題について、すぐに確認してください。 また、 Python が64ビット版であることを確認してください:
python -c "import platform; print(platform.architecture())"ユーザー名またはワークスペースのパスに、ASCII以外の文字が含まれています。
C:\workspaceワークスペースを、ASCII文字のみで構成された短いパス(例:)に移動してくださいワークスペースフォルダは、 OneDrive によって同期されます。 次のようなローカルパスに移動してください。
C:\workspaceワークスペース内のフォルダを
_smoke_pkg削除し、MSVCのロードセルを再実行してから、スモークテストセルを再実行してくださいお使いのネットワークでは、 HTTPS を傍受するプロキシが使用されています。 次のコマンドを実行
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org qiskitするか、ネットワーク管理者にプロキシCA証明書について問い合わせてください「Windows セキュリティ」→「ウイルスと脅威の防止」→「設定の管理」→「除外項目」の順に選択し、ワークスペースの
.venvおよび_smoke_pkgフォルダーを Defender の除外項目に追加してください管理者権限が必要です。 IT部門にアクセス権限を依頼してください
.pyd ファイルは、実行中のカーネルによってロックされています。 カーネルを再起動し(Ctrl+Shift+P → Jupyter: Restart Kernel)、手順 3 を再度実行してから、再ビルドしてください
PowerShell ではなく、 cmd.exe にアクセスしている可能性があります。
C:\>``PS C:\>プロンプトを確認してください: PowerShell には が表示され、cmdには が表示されます。 スタートメニューまたはWin+Xキーから「 PowerShell 」を開きますインストーラーがバックグラウンドで実行されている間、これらの
--passive --waitフラグは PowerShell をブロックします。 タスクバーに「Visual Studio Installer」ウィンドウが表示されているか確認してください。 インストールには10~30分ほどかかる場合があります
次のステップ
- Qiskit C API を使用して、 Python を拡張する方法について学びましょう。
- Qiskit をインストールします。
- Qiskit C API リファレンスをご覧ください。
Footnotes
-
Makeをインストールしていない場合は、Qiskit
Makefileルートディレクトリ内の必要なコマンドを確認してください。あるいは、今すぐMakeをインストールしてください。まだ間に合います。 ↩