התקנת חבילת Qiskit 1.0 החדשה
Qiskit 1.0 משתמש במבנה אריזה שונה מגרסאות Qiskit הקודמות, וסביר שיגרום לבעיות בסביבות שמשתמשות בחבילות שאינן מוכנות ל-Qiskit 1.0.
אל תנסה לשדרג סביבת Python וירטואלית קיימת ל-Qiskit 1.0 במקום.
לא נבצע שינויי אריזה שוברים דומים בעתיד. זהו אירוע חד-פעמי, עם שחרור Qiskit 1.0, כדי שסיפור האריזה שלנו יהיה קל ככל האפשר בעתיד.
מדריך זה מחולק לסעיפים הבאים. עליך לעיין רק בסעיפים הרלוונטיים אליך.
- משתמשים צריכים לקרוא את הסעיף למשתמשים.
- אם אתה מפתח או מתחזק חבילה שתלויה ב-Qiskit, קרא את הסעיף למפתחים.
- אם נתקלת בבעיות בהתקנה או ייבוא של Qiskit 1.0, עיין בסעיף פתרון בעיות.
אם אתה מעוניין להבין את מבנה החבילה הישן ומדוע הוא השתנה, עיין בסקירה של שינויי האריזה השוברים.
למשתמשים
עליך להתחיל סביבה וירטואלית חדשה כדי להתקין את Qiskit 1.0. שדרוג התקנה קיימת במקום ל-Qiskit 1.0 הוא מסובך מאוד ועלול לגרום לשגיאות.
הדוגמאות בסעיף זה משתמשות במודול venv שהוא חלק מהספרייה הסטנדרטית של Python.
אם אתה משתמש בכלי אחר, כגון virtualenv או conda, עיין בתיעוד שלו לקבלת עזרה.
לפקודות Linux ו-macOS, נעשה שימוש בתחביר דמוי-bash. PowerShell משמש לפקודות Windows.
יצירת הסביבה החדשה
-
צור סביבה וירטואלית חדשה בכל ספריית פרויקט שאתה עובד בה, תוך שימוש בגרסת Python 3.8 או מאוחרת יותר לפי בחירתך.
- macOS
- Linux
- Windows
python3 -m venv .venvpython3 -m venv .venvpython -m venv .venv
-
הפעל את הסביבה.
- macOS
- Linux
- Windows
source .venv/bin/activatesource .venv/bin/activate.venv\Scripts\activate.ps1 -
התקן חבילות לפי הצורך. עליך לעשות זאת על ידי שימוש בפקודת
pip installאחת בלבד עם כל התלויות.pip install 'qiskit>=1'אתה יכול לכלול חבילות נוספות כארגומנטים באופן אופציונלי. לדוגמה:
pip install 'qiskit>=1' jupyterlab pandas matplotlibQiskit 1.0 כולל שינויים שוברים, ולכן מספר חבילות מסומנות כלא-תואמות עדיין איתו. לפיכך, ייתכן שתראה שגיאות מ-
pipעד שגרסאות חדשות של אותן חבילות יושחררו. גרסאות ישנות של חבילות עלולות גם להיות תלויות בחבילה הלגאסיתqiskit-terra. חבילות כאלה עשויות שלא להחזיר שגיאות בעת הרצת פקודה זו, אך עלולות לגרום לשגיאה בעת הרצתimport qiskit. אל תתקין חבילות שתלויות ישירות ב-qiskit-terra.טיפדרך אחת לדרוש מ-
pipלאסור עלqiskit-terraמפקודותinstallבודדות היא להשתמש בקובץ אילוצים שדורש ש-qiskit-terraיוגדר לגרסה בלתי אפשרית. לדוגמה, קובץ אילוצים הכולל את השורהqiskit-terra>=1.0יאמר שאם תלות מנסה להתקין אתqiskit-terra, אף גרסה מפורסמת לא תעמוד בדרישות.סיפקנו קובץ כזה ב-GitHub Gist בכתובת https://qisk.it/1-0-constraints, שתוכל להשתמש בו כך:
pip install -c https://qisk.it/1-0-constraints qiskit [other packages]אם חבילה דורשת את
qiskit-terra, תראה כשל בפתרון התלויות.זהירותאל תתקין חבילות שאינן תואמות ל-Qiskit 1.0 בסביבה וירטואלית זו. אם עליך להשתמש בחבילות כאלה, התקן אותן בסביבה וירטואלית נפרדת עם Qiskit 0.45 או 0.46.
אם יש לך סביבה קיימת, תוכל להשתמש ב-
pipdeptreeכדי לשאול את דרישות החבילות המותקנות שלך ולראות אם הן דורשותqiskit<1. לכל חבילה שדורשתqiskit<1, בדוק אם קיימים עדכונים שהופכים אותה תואמת ל-Qiskit 1.0.אם נתקלת בבעיות, עיין בסעיף פתרון בעיות, או שאל ב-Qiskit Slack. אם אתה חושב שיש באג, תוכל לפתוח סוגיה עבור Qiskit.
-
אם אינך מתכנן להשתמש בסביבה מיד, השתמש בפקודה
deactivateכדי לצאת ממנה.
שימוש בסביבה החדשה
בכל פעם שאתה מתחיל סשן שורת פקודה חדש, עליך לנווט לספריית הפרויקט שלך ו"להפעיל" את הסביבה על ידי הרצת פקודת activate:
- macOS
- Linux
- Windows
source .venv/bin/activate
source .venv/bin/activate
.venv\Scripts\activate.ps1
למפתחים
אם אתה מתחזק חבילה שתלויה ב-Qiskit, השתמש במידע זה כדי ללמוד כיצד לבטא נכון את התאימות שלך ולבדוק מול Qiskit 1.0.
המלצות לדרישות
אנו ממליצים שהחבילה שלך תדרוש qiskit>=0.45,<1 (או גבול תחתון מתאים אחר) אם אינך בטוח האם החבילה תואמת ל-Qiskit 1.0.
זוהי אותה המלצה הנעשית לתאימות NumPy 2.0.
מועמד לשחרור של Qiskit 1.0, גרסה 1.0.0rc1, יושחרר ב-1 בפברואר 2024. עליך לבדוק את החבילה שלך מולו, ובהקדם האפשרי, לשחרר גרסה חדשה (תואמת) של החבילה שלך עם דרישת הגג שלה ללא הגבלה.
המלצות לבדיקה מול Qiskit 1.0
המלצות אלו חלות על בדיקה יזומה מול ענף main של Qiskit, ועל בדיקה מול מועמד השחרור 1.0.0rc1 (ומאוחר יותר, אם רלוונטי).
אנו לא ממליצים בתחילה להגן על ענפים בהצלחת CI מול ענף main של Qiskit, כיוון ששינויים ב-Qiskit עלולים למנוע ממך למזג PRs.
לאחר שחרור מועמדי השחרור של Qiskit, ולאחר שכל התלויות של החבילה שלך תומכות ב-Qiskit 1.0, אנו כן ממליצים להגן על ענפים בהצלחה מול מועמד השחרור האחרון, כדי להבטיח שהחבילה נשארת תואמת ל-Qiskit 1.0.
אם לא לחבילה שלך ולא לאף אחת מהתלויות הטרנזיטיביות שלה יש הגבלת דרישה על qiskit<1, עליך ליצור סביבת בדיקה וירטואלית כרגיל, בפקודת pip install אחת, ולציין ישירות qiskit==1.0.0rc1 או qiskit==git+https://github.com/Qiskit/qiskit.git@main לפי הצורך.
זוהי הדרך האמינה ביותר להבטיח שיש לך סביבה תקפה לחלוטין.
אם הרכיב היחיד בגרף התלויות של החבילה שלך שיש לו הגבלת דרישה על qiskit<1 הוא החבילה שלך עצמה, ייתכן שתרצה שערכת ה-CI שלך תתקן תחילה באופן זמני את קובץ הדרישות שלך כדי לאפשר את Qiskit 1.0, ואז תתקין את הסביבה בשלב אחד כמקודם.
לחלופין, השתמש בכללים הבאים לשדרוגי סביבה כלליים, אך עבור לפתרון סביבה יחידה בהקדם האפשרי.
אם לפחות אחת מהתלויות הטרנזיטיביות שלך עדיין אין לה גרסת שחרור שמאפשרת תמיכה ב-Qiskit 1.0, עליך לבצע שינויים ידניים. ישנן מספר אסטרטגיות לנסות, בסדר עדיפות משוער (מהעדיף ביותר לפחות):
- התקן את התלות הבעייתית מענף
mainשלה, אם גרסת הפיתוח שלה הרגיעה את ההגבלה, כך שתוכל לבנות את סביבת הבדיקה בשלב אחד. - הדר את השימוש בתלות זו מסביבת הבדיקה, אם אפשרי.
- צור סביבת בדיקה באותה דרך שהיית עושה בדרך כלל, ואז עקוף אותה ידנית לשימוש ב-Qiskit 1.0.