Lewati ke konten utama

Instal paket Qiskit 1.0 yang baru

Qiskit 1.0 menggunakan struktur paket yang berbeda dari versi Qiskit sebelumnya dan kemungkinan besar akan menyebabkan masalah di lingkungan yang menggunakan paket yang belum siap untuk Qiskit 1.0.

perhatian

Jangan coba upgrade lingkungan virtual Python yang sudah ada ke Qiskit 1.0 secara langsung.

Kami tidak akan membuat perubahan paket yang memutus kompatibilitas serupa di masa depan. Ini adalah kejadian satu kali, saat rilis Qiskit 1.0, khusus agar cerita paket kami bisa semudah mungkin di masa depan.

Panduan ini dibagi menjadi bagian-bagian berikut. Kamu hanya perlu membaca bagian yang relevan untukmu.

  • Pengguna perlu membaca bagian Untuk pengguna.
  • Jika kamu mengembangkan atau memelihara paket yang bergantung pada Qiskit, baca bagian Untuk developer.
  • Jika kamu menemui masalah saat menginstal atau mengimpor Qiskit 1.0, tinjau bagian Pemecahan masalah.

Jika kamu ingin memahami struktur paket lama dan alasan perubahannya, tinjau gambaran umum perubahan paket yang memutus kompatibilitas.

Untuk pengguna​

Kamu harus membuat lingkungan virtual baru untuk menginstal Qiskit 1.0. Sangat sulit dan rawan kesalahan jika mengupgrade instalasi yang sudah ada secara langsung ke Qiskit 1.0.

catatan

Contoh-contoh di bagian ini menggunakan modul venv yang merupakan bagian dari pustaka standar Python. Jika kamu menggunakan alat lain, seperti virtualenv atau conda, lihat dokumentasinya untuk bantuan.

Untuk perintah Linux dan macOS, sintaks seperti bash digunakan. PowerShell digunakan untuk perintah Windows.

Buat lingkungan baru​

  1. Buat lingkungan virtual baru di setiap direktori proyek yang sedang kamu kerjakan, menggunakan versi Python 3.8 atau lebih baru yang kamu sukai.

    python3 -m venv .venv
  1. Aktifkan lingkungan tersebut.

    source .venv/bin/activate
  2. Instal paket sesuai kebutuhan. Sebaiknya lakukan ini dengan hanya menggunakan satu perintah pip install dengan semua dependensi sekaligus.

    pip install 'qiskit>=1'

    Kamu bisa opsional menyertakan paket tambahan dengan menambahkannya sebagai argumen. Contohnya:

    pip install 'qiskit>=1' jupyterlab pandas matplotlib

    Qiskit 1.0 menyertakan perubahan yang memutus kompatibilitas, sehingga beberapa paket ditandai belum kompatibel dengannya. Oleh karena itu, kamu mungkin melihat error dari pip sampai versi baru paket-paket tersebut dirilis. Versi lama paket mungkin juga bergantung pada paket qiskit-terra yang sudah usang. Paket seperti itu mungkin tidak menampilkan error saat menjalankan perintah ini, tapi mungkin menampilkan error saat menjalankan import qiskit. Kamu tidak boleh menginstal paket apapun yang bergantung langsung pada qiskit-terra.

    tips

    Salah satu cara untuk mewajibkan pip melarang qiskit-terra dari perintah install individu adalah menggunakan file constraints yang mengharuskan qiskit-terra diset ke versi yang tidak mungkin ada. Misalnya, file constraints yang menyertakan baris qiskit-terra>=1.0 akan berarti bahwa jika dependensi mencoba menginstal qiskit-terra, tidak ada versi yang dipublikasikan yang akan cocok dengan persyaratan tersebut.

    Kami telah menyediakan file seperti itu di GitHub Gist di https://qisk.it/1-0-constraints, yang bisa kamu gunakan seperti ini:

    pip install -c https://qisk.it/1-0-constraints qiskit [other packages]

    Jika sebuah paket membutuhkan qiskit-terra, kamu akan melihat kegagalan resolusi.

    perhatian

    Jangan instal paket yang tidak kompatibel dengan Qiskit 1.0 di lingkungan virtual ini. Jika kamu perlu menggunakan paket seperti itu, instal di lingkungan virtual terpisah dengan Qiskit 0.45 atau 0.46.

    Jika kamu punya lingkungan yang sudah ada, kamu bisa menggunakan pipdeptree untuk memeriksa persyaratan paket yang terinstal dan melihat apakah ada yang membutuhkan qiskit<1. Untuk yang membutuhkan qiskit<1, cek apakah ada update yang membuatnya kompatibel dengan Qiskit 1.0.

    Jika kamu menemui masalah, lihat bagian pemecahan masalah, atau tanyakan di Qiskit Slack. Jika kamu pikir ada bug, kamu bisa membuat issue di Qiskit.

  3. Jika kamu tidak berencana menggunakan lingkungan tersebut segera, gunakan perintah deactivate untuk keluar.

Gunakan lingkungan baru​

Setiap kali kamu memulai sesi command line baru, kamu harus navigasi ke direktori proyekmu dan "aktifkan" lingkungan dengan menjalankan perintah activate:

source .venv/bin/activate

Untuk developer​

Jika kamu memelihara paket yang bergantung pada Qiskit, gunakan informasi ini untuk mempelajari cara mengekspresikan kompatibilitas dengan benar dan menguji terhadap Qiskit 1.0.

Rekomendasi untuk persyaratan​

Kami merekomendasikan agar paketmu membutuhkan qiskit>=0.45,<1 (atau batas bawah yang sesuai) jika kamu tidak yakin apakah paket tersebut kompatibel dengan Qiskit 1.0. Ini adalah rekomendasi yang sama yang dibuat untuk kompatibilitas NumPy 2.0.

Kandidat rilis Qiskit 1.0, versi 1.0.0rc1, akan dirilis pada 1 Februari 2024. Kamu harus menguji paketmu terhadap ini, dan sesegera mungkin, rilis versi baru (yang kompatibel) dari paketmu dengan persyaratan batas atas yang tidak lagi dipatok.

Rekomendasi untuk pengujian terhadap Qiskit 1.0​

Rekomendasi ini berlaku untuk pengujian proaktif terhadap cabang main Qiskit, dan untuk pengujian terhadap kandidat rilis 1.0.0rc1 (dan selanjutnya, jika ada).

Kami tidak merekomendasikan untuk awalnya melindungi cabang berdasarkan keberhasilan CI terhadap cabang main Qiskit karena perubahan Qiskit bisa mencegahmu melakukan merge PR. Setelah rilis kandidat Qiskit, dan setelah semua dependensi paketmu mendukung Qiskit 1.0, kami merekomendasikan perlindungan cabang berdasarkan keberhasilan terhadap kandidat rilis terbaru, untuk memastikan bahwa paket tetap kompatibel dengan Qiskit 1.0.

Jika baik paketmu, maupun dependensi transitif-nya, tidak punya pin persyaratan pada qiskit<1, kamu sebaiknya membuat lingkungan virtual pengujian seperti biasa, dalam satu perintah pip install, dan langsung tentukan qiskit==1.0.0rc1 atau qiskit==git+https://github.com/Qiskit/qiskit.git@main sesuai kebutuhan. Ini adalah cara paling andal untuk memastikan bahwa kamu punya lingkungan yang sepenuhnya valid.

Jika satu-satunya komponen dalam grafik dependensi paketmu yang punya pin persyaratan pada qiskit<1 adalah paketmu sendiri, kamu mungkin ingin membuat suite CI kamu terlebih dahulu sementara menambal file persyaratanmu untuk mengizinkan Qiskit 1.0, lalu instal lingkungan dalam satu langkah seperti sebelumnya. Atau, gunakan aturan berikut untuk upgrade lingkungan serbaguna, tapi beralih ke resolusi lingkungan tunggal sesegera mungkin.

Jika setidaknya satu dependensi transitifmu belum punya versi rilis yang mengizinkan dukungan Qiskit 1.0, kamu harus melakukan perubahan manual. Ada beberapa strategi yang bisa dicoba, kira-kira dalam urutan preferensi (yang paling disarankan hingga yang paling tidak):

  • Instal dependensi yang bermasalah dari cabang main-nya sendiri, jika versi pengembangannya sudah melonggarkan pin tersebut, sehingga kamu bisa membangun lingkungan pengujian dalam satu langkah.
  • Kecualikan penggunaan dependensi tersebut dari lingkungan pengujian, jika memungkinkan.
  • Buat lingkungan pengujian dengan cara yang biasa kamu lakukan, lalu override secara manual untuk menggunakan Qiskit 1.0.

Upgrade lingkungan yang sudah ada secara manual​

perhatian

Proses ini dengan sengaja membuat lingkungan yang tidak valid. Oleh karena itu, setiap pengujian yang menggunakannya kurang valid. Pengujian mungkin tampak berhasil, tapi ini tidak menjamin bahwa paket kompatibel dengan Qiskit 1.0. Ini bisa terjadi karena lingkungan tidak konsisten sendiri dan bisa mengandung file yang tidak ada di lingkungan yang valid, atau perilaku paket yang di-override mungkin berubah dengan Qiskit 1.0.

catatan

Jika salah satu dependensimu memasang pin qiskit<1 bahkan di cabang pengembangan mereka, mungkin tidak akan berfungsi sama sekali dengan Qiskit 1.0, dan jika pengujianmu tidak bisa berjalan karena ini, kamu mungkin harus menunggu mereka (atau bekerja sama dengan mereka) untuk menjadi kompatibel.

Untuk mengupgrade lingkungan secara langsung, ikuti langkah-langkah berikut:

  1. Buat lingkungan seperti biasa, pastikan tidak ada paket yang memperluas namespace qiskit atau qiskit.providers yang terinstal.

  2. Uninstall baik qiskit maupun qiskit-terra untuk memastikan keduanya tidak ada:

pip uninstall --yes qiskit qiskit-terra

Pada titik ini, site-packages lingkungan tidak boleh mengandung direktori qiskit. Kamu tidak perlu memverifikasi ini di setiap CI run, tapi jika kamu sedang debug skrip secara lokal, ikuti langkah-langkah ini untuk memverifikasi:

  1. Jalankan perintah berikut dari dalam python lingkungan virtual:
import site
print(site.getsitepackages())
  1. Verifikasi bahwa direktori-direktori tersebut tidak mengandung direktori qiskit. Jika mengandungnya, kemungkinan kamu punya paket yang memperluas namespace yang terinstal, dan kamu harus menemukan dan menghapus dependensinya.

  2. Instal versi target Qiskit 1.0 dengan salah satu perintah ini:

  • Setelah kandidat rilis yang diinginkan dipublikasikan:
    pip install 'qiskit==1.0.0rc1'
  • Untuk dependensi cabang main (atau ganti dengan identifier revisi git yang kamu sukai setelah @).
    pip install 'git+https://github.com/Qiskit/qiskit.git@main'

Sekarang kamu punya lingkungan yang Qiskit izinkan untuk diuji. Jika import qiskit menghasilkan ImportError, atau jika kamu kesulitan menemukan dependensimu, lihat saran di bagian tentang perlindungan lingkungan tidak valid di Qiskit.

Contoh workflow GitHub Actions manual​

Workflow berikut menyiapkan pekerjaan terjadwal untuk berjalan semalam. Pekerjaan ini menyiapkan lingkungan pengujian untuk Qiskit 1.0 dan menjalankan pytest (atau langkah pengujian apapun yang kamu butuhkan).

Untuk paket yang tidak punya dependensi transitif qiskit<1:

on:
schedule:
- cron: '0 3 * * *'
jobs:
test_main:
name: Test Qiskit main
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Create environment
run: |
set -e
# First ensure the standard tools are up-to-date.
python -m pip install --upgrade pip wheel setuptools
# Note that this resolves everything in a single command.
# If it fails, at least one package likely requires `qiskit<1`.
python -m pip install --upgrade \
-c constraints.txt \
-r requirements-dev.txt \
. \
'git+https://github.com/Qiskit/qiskit.git@main'
- name: Run tests
run: pytest

Untuk paket yang punya dependensi transitif yang tidak bisa dihindari yang memasang pin qiskit<1, bangun lingkungan yang tidak valid:

on:
schedule:
- cron: '0 3 * * *'
jobs:
test_main:
name: Test Qiskit main
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Create environment
run: |
set -e
python -m pip install --upgrade pip wheel setuptools
# Install the regular test environment.
python -m pip install --upgrade \
-c constraints.txt \
-r requirements-dev.txt \
.
# Uninstall `qiskit` and `qiskit-terra`.
python -m pip uninstall --yes qiskit qiskit-terra
# Install the new version of Qiskit
python -m pip install 'git+https://github.com/Qiskit/qiskit.git@main'
- name: Run tests
run: pytest

Contoh konfigurasi tox​

Berikut adalah contoh bagian tox.ini untuk membangun lingkungan pengujian bagi Qiskit 1.0 dan menjalankan pytest (atau langkah pengujian apapun yang kamu butuhkan).

Jika tidak ada yang mencegah Qiskit 1.0 diinstal di lingkungan yang valid:

[tox]
minversion = 4.0.0

# This environment section should set up your regular test build.
# We'll extend it after, and this one is just an example.
[testenv]
install_command = pip install -c {toxinidir}/constraints.txt -U {opts} {packages}
deps =
-r{toxinidir}/requirements-dev.txt
commands =
pytest

# This is an override environment to install Qiskit main.
# We're assuming that you have a requirement like `qiskit>=0.45`
# in your packages metadata requirements.
[testenv:qiskit-main]
# Inherit the base dependencies, and add the additional requirement.
deps =
[{testenv}deps]
git+https://github.com/Qiskit/qiskit@main
# All other options, like the `commands` section, are inherited from `testenv`.

Jika paketmu atau dependensi transitif punya pin yang tidak bisa dihindari pada qiskit<1, kami merekomendasikan melakukan pengujian ini menggunakan konstruksi lingkungan manual seperti di bagian di atas, karena tox memperkenalkan beberapa kompleksitas dengan lebih ketat tentang isolasi lingkungan dan urutan instalasi. Ini adalah perilaku yang benar dari tox (kita tidak boleh membangun lingkungan yang tidak valid), tapi karena kita sudah tahu kita sedang membangun lingkungan yang tidak valid, pemeriksaan ini jadi menghalangi.

[tox]
minversion = 4.0.0

# This environment section should set up your regular test build.
# We'll extend it later. This is just an example.
[testenv]
install_command = pip install -c {toxinidir}/constraints.txt -U {opts} {packages}
deps =
-r{toxinidir}/requirements-dev.txt
commands =
pytest

[testenv:qiskit-main]
# Set a sequence of commands to run in the environment after everything has been installed,
# but before the main test suite.
commands_pre =
pip uninstall --yes qiskit qiskit-terra
pip install 'git+https://github.com/Qiskit/qiskit@main'
# All other sections, like the dependencies and the 'commands' section are inherited.

Pemecahan Masalah​

Perubahan packaging di sekitar Qiskit 1.0 cukup rumit, dan alat standar Python pip tidak cukup kaya dalam beberapa hal untuk mengomunikasikan perubahan dalam struktur distribusi kepadanya, yang sayangnya bisa menyebabkan masalah bagi pengguna. Kami sudah berusaha agar Qiskit gagal dengan cepat dan jelas jika mendeteksi lingkungan yang tidak valid, tanpa false positive. Kami mengerti bahwa pengguna mungkin merasa terganggu dengan pesan error, tapi menurut pengalaman kami, jauh lebih baik mengetahui masalah langsung daripada seolah-olah semuanya berjalan baik di permukaan, tapi kemudian gagal dengan cara yang tidak terduga di kemudian hari.

Bagian ini berisi error packaging yang mungkin kamu temui, beserta cara mengatasinya.

Sebagian besar masalah ini tidak unik untuk Qiskit, jadi sarannya kemungkinan tetap relevan, meskipun bagian yang bermasalah tidak berhubungan dengan Qiskit.

import qiskit mengatakan "ModuleNotFoundError: No module named 'qiskit'"​

Python tidak dapat menemukan instalasi Qiskit kamu.

Jika kamu sudah pasti menginstal Qiskit, kemungkinan besar kamu tidak mengaktifkan virtual environment yang tepat. Lihat bagian tentang mengaktifkan virtual environment untuk petunjuknya.

Jika kamu menggunakan Jupyter dan melihat ini, pastikan Jupyter diinstal di virtual environment yang sama dengan Qiskit. Keluar dari Jupyter, aktifkan virtual environment Qiskit di command line, jalankan pip install jupyterlab (atau antarmuka notebook yang kamu gunakan), lalu buka kembali Jupyter.

import qiskit berhasil, tapi mencoba melakukan sesuatu menghasilkan "AttributeError: module 'qiskit' has no attribute '...'"​

Ini kemungkinan berarti lingkungan kamu memiliki versi Qiskit lama di dalamnya bersama paket yang memperluas namespace-nya (seperti versi lama Qiskit Aer, atau Qiskit IBM Q® Provider yang sudah lama usang), dan kemudian Qiskit di-uninstall. Cara paling mudah adalah memulai virtual environment baru, dan hanya menginstal paket-paket terbaru yang tidak usang ke dalamnya.

Jika kamu baru saja memulai virtual environment baru, atau kamu yakin paket-paket legacy bukan masalahnya, pastikan direktori kerja saat ini (direktori sesi shell kamu saat meluncurkan Python / Jupyter) tidak berisi folder bernama qiskit. Aturan default Python mencari direktori kerja saat ini sangat awal dalam search path saat mencoba import sebuah modul, sehingga direktori dengan nama duplikat bisa menyebabkan masalah import.

pip menolak menginstal beberapa paket bersama-sama​

Setelah menjalankan perintah pip install dengan banyak item di dalamnya, kamu mungkin melihat error seperti:

ERROR: Cannot install qiskit-dynamics==0.4.4 and qiskit==1.0.0 because these package versions have conflicting dependencies.

The conflict is caused by:
The user requested qiskit==1.0.0
qiskit-dynamics 0.4.4 depends on qiskit<1.0

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

Ini menggambarkan konflik resolusi yang nyata; tidak ada cara valid untuk menginstal semua distribusi ini secara bersamaan.

Dalam konteks Qiskit 1.0, ini kemungkinan karena salah satu distribusi yang coba kamu instal memiliki persyaratan seperti qiskit<1.0. Ini berarti para pengembang distribusi tersebut menandainya sebagai (belum) kompatibel dengan Qiskit 1.0.

Kamu bisa (dengan sopan) meminta para pengembang kapan mereka akan merilis versi baru paket mereka yang kompatibel dengan Qiskit 1.0, tapi pertama-tama periksa apakah mereka sudah memiliki issue atau pull request terbuka yang meminta hal ini di tempat mereka menerima komentar. Ingat bahwa ini butuh waktu; berikan para pengembang sekitar sebulan atau lebih untuk menyiapkan versi baru distribusi mereka! Sampai saat itu, kamu tidak bisa menginstal distribusi tersebut bersamaan dengan Qiskit 1.0. Untuk terus menggunakan distribusi tersebut, buat virtual environment baru dan gunakan Qiskit 0.45 atau 0.46 (atau versi yang didukung) bersama paket lain itu.

perhatian

Jika kamu mendapat error ini, jangan mencoba membangun lingkungan dengan memanggil pip install beberapa kali. Perintah-perintah tersebut kemungkinan tidak akan gagal, tapi kamu akan membuat lingkungan yang tidak valid. Kamu kemungkinan besar akan melihat beberapa pesan error lain yang dijelaskan di bagian ini.

Kamu juga bisa membaca dokumentasi dari Python packaging authority tentang conflict resolution.

pip berhasil tapi mencetak error setelah menjalankan perintah pip install​

Kamu mungkin melihat error dalam output pip, seperti berikut:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behavior is the source of the following dependency conflicts.
some-distribution 0.4.4 requires qiskit>=0.44,<1, but you have qiskit 1.0.0 which is incompatible.

Baris pertama biasanya muncul persis seperti itu (per pip 23.3), tapi baris kedua berubah tergantung masalah yang terjadi, dan mungkin ada beberapa baris seperti itu. pip kemungkinan kemudian menunjukkan bahwa operasi yang kamu inginkan berhasil dilakukan, meskipun ada pesan error.

Ini berarti lingkungan dalam konflik dan kamu tidak bisa memastikan bahwa semuanya akan berjalan dengan benar. Untuk mengatasi masalah, periksa daftar pesan dari pip dan tentukan apakah kamu membutuhkan semua paket yang memiliki persyaratan yang bertentangan. Terkadang ada konflik nyata antara dependensi; kamu mungkin perlu beberapa virtual environment untuk memisahkan dependensi yang memiliki persyaratan yang tidak kompatibel.

Pilihan paling aman adalah memulai virtual environment baru (atau lebih dari satu, jika ada konflik nyata), lalu menghapus yang dalam konflik.

Saat menyiapkan virtual environment, jalankan hanya satu perintah pip install yang mencakup semua dependensi yang kamu butuhkan. Ini adalah cara paling andal bagi pip untuk menemukan lingkungan yang terselesaikan dengan benar tanpa konflik. Jika kamu terus mengalami masalah dengan konflik setelah menyiapkan lingkungan, hindari menjalankan perintah pip install atau pip uninstall lebih lanjut; pip tidak menjamin untuk menjaga lingkungan tetap koheren pada perintah berikutnya.

catatan

Jika kamu khawatir tentang bekerja dengan beberapa virtual environment, tenang saja karena pengembangan dan penggunaan Python sering melibatkan beberapa virtual environment. Ini adalah praktik umum dan baik untuk membuat virtual environment baru ketika mengerjakan proyek yang berbeda. Saat kamu selesai dengan virtual environment, kamu cukup menghapus direktorinya; tidak ada alasan untuk menyimpan beberapa lingkungan secara permanen.

import qiskit memunculkan ImportError​

Saat menjalankan import qiskit, kamu mungkin melihat error seperti:

ImportError: Qiskit is installed in an invalid environment that has both Qiskit 1.0+ and an earlier version. You should create a new virtual environment, and ensure that you do not mix dependencies between Qiskit pre-1.0 and post-1.0. Any packages that depend on 'qiskit-terra' are not compatible with Qiskit 1.0 and will need to be updated. Qiskit unfortunately cannot enforce this requirement during environment resolution.

tips

Kamu mungkin sudah menjalankan perintah pip install yang sepenuhnya valid, mengikuti semua rekomendasi dalam panduan ini, dan masih melihat pesan error ini. Ini bukan kesalahanmu, tapi pesan error tersebut tetap benar, dan Qiskit tidak dapat dimuat dengan aman.

Error ini berarti Qiskit diinstal di lingkungan yang tidak valid yang mencakup baik Qiskit 1.0 maupun versi sebelumnya. Hal ini ditandai dengan distribusi qiskit-terra yang diinstal bersamaan dengan Qiskit 1.0. Kamu bisa memeriksa distribusi yang terinstal dengan menjalankan pip list, tapi kamu tidak bisa memperbaiki ini hanya dengan meng-uninstall qiskit-terra.

Sayangnya, qiskit>=1.0 dan qiskit-terra adalah distribusi yang bertentangan, dan tidak bisa diinstal bersama-sama. Lebih disayangkan lagi, kami tidak bisa mengomunikasikan konflik ini ke pip karena keterbatasan dalam sistem metadatanya.

Error ini paling sering muncul dalam salah satu dari dua situasi:

  • Kamu menjalankan sesuatu seperti pip install 'qiskit>=1' something-else, dan something-else memiliki persyaratan pada qiskit-terra.
  • Kamu mencoba menjalankan pip install -U qiskit di lingkungan yang sudah ada.

Dalam kedua kasus ini, tidak ada jaminan bahwa pip akan memberikan pesan yang membantu kepadamu.

tips

Salah satu cara untuk mengharuskan pip melarang qiskit-terra dari perintah install individual adalah dengan menggunakan constraints file yang mengharuskan qiskit-terra diatur ke versi yang tidak mungkin. Misalnya, constraints file yang mencakup baris qiskit-terra>=1.0 akan berarti bahwa jika suatu dependensi mencoba menginstal qiskit-terra, tidak ada versi yang diterbitkan yang akan memenuhi persyaratan.

Kami telah menyediakan file seperti itu dalam GitHub Gist di https://qisk.it/1-0-constraints, yang bisa kamu gunakan seperti ini:

pip install -c https://qisk.it/1-0-constraints qiskit [other packages]

Jika sebuah paket memerlukan qiskit-terra, kamu akan melihat kegagalan resolusi.

Buat lingkungan yang berfungsi untuk Qiskit 1.0​

Tidak peduli bagaimana ini terjadi, jauh lebih mudah untuk membuat virtual environment baru.

Pertama, kita perlu mencari tahu paket mana yang menghadirkan dependensi pada qiskit-terra. Menggunakan lingkungan yang rusak, instal pipdeptree dari PyPI. Ini adalah alat untuk menghasilkan grafik dependensi:

pip install pipdeptree

Tanyakan paket mana yang menghadirkan dependensi pada qiskit-terra dan qiskit (ini adalah dua perintah terpisah):

pipdeptree --reverse --package qiskit-terra
pipdeptree --reverse --package qiskit

Outputnya mungkin terlihat seperti:

qiskit-terra==0.45.2
└── qiskit-dynamics==0.4.2 [requires: qiskit-terra>=0.23.0]
qiskit==1.0.0
├── qiskit-aer==0.13.2 [requires: qiskit>=0.45.0]
└── qiskit-ibm-provider==0.8.0 [requires: qiskit>=0.45.0]

Dalam contoh di atas, kita memiliki dua distribusi yang telah menyatakan dirinya kompatibel dengan Qiskit 1.0 (qiskit-aer dan qiskit-ibm-provider), dan satu yang masih memiliki dependensi pada qiskit-terra.

tips

Contoh ini adalah struktur dependensi yang datar. Kamu mungkin melihat pohon yang jauh lebih dalam dari ini. Paket-paket yang langsung bergantung pada qiskit-terra (indentasi paling rendah) paling mungkin menjadi yang bermasalah, tapi yang lebih jauh di pohon bisa bermasalah jika bergantung pada versi lama tertentu dari paket lain yang sudah diperbarui.

Melihat dependensi pada qiskit-terra bisa berarti beberapa hal:

  • Dependennya adalah paket lama, dan tidak akan diperbarui untuk mendukung Qiskit 1.0.

    Dalam kasus ini, tidak ada kemungkinan menggunakan paket tersebut dengan Qiskit 1.0, dan kamu perlu terus menggunakan versi Qiskit sebelumnya. Biasanya ini ditandai dengan dependen yang berada di versi terbarunya (dengan asumsi lingkungan baru, dan kamu tidak menyematkan versinya lebih rendah) dan memiliki persyaratan langsung pada qiskit-terra.

  • Dependennya adalah paket yang aktif dipelihara, tapi belum mendukung Qiskit 1.0.

    Dalam kasus ini, kamu perlu menunggu pengembang merilis versi yang kompatibel — harap bersabar! Biasanya ini ditandai dengan distribusi yang terinstal tidak berada di versi terbarunya, meskipun perintah instalasi kamu tidak menentukan versi. Kamu bisa memeriksa versi rilis terbaru distribusi dengan menemukan halamannya di https://pypi.org/.

    pip kemungkinan mencari versi lama paket sampai menemukan satu (mungkin dari bulan atau tahun yang lalu) yang hanya bergantung pada qiskit-terra.

    Inilah yang terjadi dalam contoh di atas. Pada saat dokumen ini dibuat, qiskit-dynamics==0.4.4 adalah versi rilis terbaru.

Jika kamu membangun lingkungan ini dari beberapa perintah pip install (seperti jika lingkungan sudah lama dan telah diperbarui), pertama-tama coba instal semua paket kamu dengan menggunakan satu perintah pip install saat membangun lingkungan baru. Jika masalah berlanjut, setidaknya satu paket yang kamu inginkan kemungkinan belum mendukung Qiskit 1.0, dan pip menemukan versi lama yang diyakininya akan berhasil karena tidak tahu tentang konflik qiskit>=1/qiskit-terra.

Sebagai gantinya, gunakan perintah pipdeptree untuk mengidentifikasi dependensi mana yang belum mendukung Qiskit 1.0. Kecualikan paket-paket yang belum mendukung Qiskit 1.0 saat membangun lingkungan Qiskit 1.0, atau terus gunakan versi Qiskit sebelumnya. Lihat Buat lingkungan baru untuk petunjuknya.

catatan

Contoh di bagian ini dibuat sebelum Qiskit 1.0 dirilis.

Distribusi "lama" yang dimaksud (qiskit-dynamics) berperilaku dengan benar; belum diketahui mendukung Qiskit 1.0, jadi ditandai demikian dalam persyaratannya. Tidak mungkin untuk mengubah persyaratan ke versi yang sudah dirilis sebelumnya, dan pip akan mencari sejauh mungkin untuk menemukan sesuatu yang berhasil saat membangun lingkungan.

Buat lingkungan yang berfungsi untuk Qiskit 0.45 atau 0.46​

Jika kamu memiliki lingkungan yang rusak setelah mencoba menginstal Qiskit 0.45 atau 0.46, kemungkinan besar situasinya adalah pip menginstal Qiskit 1.0 karena mencoba memilih versi terbaru dari paket, meskipun itu tidak diperlukan. Cara termudah untuk memperbaikinya adalah membuat virtual environment baru, lalu menjalankan satu perintah pip install yang memiliki semua paket yang kamu butuhkan, ditambah entri 'qiskit<1' yang eksplisit. Jika pip berhasil me-resolve grafik dependensi ini, kamu seharusnya memiliki virtual environment yang berfungsi. Jika setidaknya satu distribusi memerlukan Qiskit 1.0 atau lebih besar, pip seharusnya memberi kamu pesan error yang menjelaskan ini, yang terlihat seperti di bagian tentang resolusi yang gagal.

Kamu juga bisa menggunakan perintah pipdeptree yang tercantum di Buat lingkungan yang berfungsi untuk Qiskit 1.0 dari dalam lingkungan yang rusak untuk menentukan distribusi mana yang memiliki persyaratan eksplisit pada qiskit>=1.

Saya seorang developer, lingkungan saya pasti sudah benar, dan saya masih mendapat error tersebut​

Pertama: kamu harus benar-benar yakin bahwa lingkunganmu sudah benar. Pengujian yang digunakan Qiskit untuk menentukan lingkungan yang rusak cukup kuat; secara khusus, ia menanyakan importlib.metadata untuk informasi distribusi tentang paket yang terinstal dan memeriksa nomor versi yang dikembalikan. Sisi Qiskit 1.0 dari pengujian juga memeriksa file sentinel yang ada di versi Qiskit lama dan tidak ada di Qiskit 1.0.

Jika kamu adalah developer Qiskit, kemungkinan kamu memiliki direktori qiskit.egg-info atau qiskit-terra.egg-info (atau *.dist-info) yang sudah lama ada di meta path kamu (lihat sys.meta_path), sisa dari instalasi editable yang lama. Secara khusus, periksa direktori kerja kamu untuk direktori *.egg-info dan *.dist-info apa pun. Jika ada di root salah satu repositori yang kamu checkout, kamu bisa menghapusnya. Hal terburuk yang bisa terjadi adalah kamu mungkin perlu menjalankan pip install -e . lagi, dan bahkan itu pun tidak mungkin, karena ini biasanya hanya bagian dari proses build setuptools yang tidak dibersihkan.

Jika informasi di atas tidak membantu dan kamu 100% yakin lingkunganmu sudah benar (atau kamu sengaja mencoba menguji lingkungan yang rusak):

  1. Buat issue di Qiskit yang menjelaskan bagaimana ini terjadi dan mengapa kamu yakin lingkungannya sudah benar agar kami bisa memperbaikinya.
  2. Kamu bisa menekan exception dengan mengatur variabel lingkungan QISKIT_SUPPRESS_1_0_IMPORT_ERROR=1.
Source: IBM Quantum docs — updated 27 Apr 2026
English version on doQumentation — updated 7 Mei 2026
This translation based on the English version of 11 Mar 2026