Q100715: Nuke 16+ में Python PySide समस्याओं का समाधान कैसे करें

लक्षण

Nuke 16 या उसके बाद के संस्करण को लॉन्च करते समय, यदि आपके पास कस्टम पायथन कोड है जो PySide2 का उपयोग करता है, तो आपको लॉन्च पर एक त्रुटि का सामना करना पड़ेगा क्योंकि प्लग-इन विफल हो जाता है:

यदि आप कमांड प्रॉम्प्ट या टर्मिनल के साथ लॉन्च कर रहे हैं, तो आपको कुछ इस तरह की त्रुटि भी दिखाई देगी: ModuleNotFoundError: No module named 'PySide2' :


कारण

Nuke 16 में VFX रेफरेंस प्लेटफ़ॉर्म 2024 के अपडेट के साथ, PySide लाइब्रेरी को PySide6 में अपडेट कर दिया गया है। इसका मतलब है कि PySide मॉड्यूल को अब आयात करने के लिए एक नया नाम मिल गया है।

यह वैसा ही था जैसा तब हुआ जब Nuke 11 VFX रेफरेंस प्लेटफ़ॉर्म 2017 अपडेट के साथ PySide से PySide2 में स्थानांतरित हुआ था। इसके बारे में अधिक जानकारी हमारे इस लेख में मिल सकती है: Q100398: Nuke 11+ में PySide पायथन स्क्रिप्ट का उपयोग करते समय आने वाली समस्याओं को कैसे दूर करें

संकल्प

इस समस्या के समाधान के लिए, आपके कोड को PySide6 के साथ काम करने के लिए अद्यतन करना होगा।

कई मामलों में, आप इन्हें प्रतिस्थापित कर सकते हैं:

import PySide2

साथ:

import PySide6

इससे अधिकांश समस्याओं का समाधान हो जाना चाहिए, क्योंकि PySide से PySide2 में अपग्रेड के विपरीत, इसमें कोई बड़े मॉड्यूल परिवर्तन नहीं हैं।

एक उल्लेखनीय परिवर्तन जो उपयोगकर्ताओं को प्रभावित कर सकता है, वह यह है कि QAction वर्ग PySide2.QtWidgets से PySide6.QtGui में स्थानांतरित हो गया है, जिसका उपयोग Nuke के UI के अंदर मेनू क्रियाओं के लिए किया जाता है।

यदि आप प्रभावित मॉड्यूल या फ़ंक्शन का उपयोग कर रहे हैं, तो आपके कोड में कुछ अन्य परिवर्तन भी शामिल हो सकते हैं। इसके बारे में अधिक जानकारी Qt for Pythons की वेबसाइट पर यहाँ पाई जा सकती है: https://doc.qt.io/qtforpython-6/faq/porting_from2.html

वैकल्पिक रूप से, आप सभी विभिन्न PySide/PyQt लाइब्रेरी संस्करणों के बीच मैपिंग में सहायता के लिए तृतीय पक्ष Qt.py का उपयोग कर सकते हैं, जिससे आपके कोड लाइब्रेरी संस्करण अज्ञेय बन जाएंगे।

तो इस तरह की पंक्तियाँ:

from PySide2 import QtWidgets, QtCore, QtGui

बन जाएगा:

from Qt import QtWidgets, QtCore, QtGui

यदि आपके Nuke पथ में Qt.py उपलब्ध है, तो इससे आपको Nuke संस्करण-विशिष्ट कोड में बदलाव किए बिना, विभिन्न Nuke संस्करणों के बीच मॉड्यूल आयात करने की सुविधा मिलनी चाहिए। Qt.py को GitHub पर यहाँ पाया जा सकता है: https://github.com/mottosso/Qt.py

नोट : Qt.py परियोजना किसी तीसरे पक्ष द्वारा बनाई गई है, इसलिए किसी भी समस्या या प्रश्न को परियोजना मालिकों को सूचित किया जाना चाहिए।

अग्रिम पठन

PySide2 से PySide6 में रूपांतरण करने के बारे में अन्य तृतीय पक्ष मार्गदर्शिकाएँ भी नीचे पाई जा सकती हैं:

https://erwanleroy.com/updating-your-python-scripts-for-nuke-16-and-pyside6/

https://www.pythonguis.com/faq/pyside2-vs-pyside6/

    हम चाहते हैं कि खेद व्यक्त करते हैं

    कृपया हमें बताएँ कि