Q100398: Nuke 11+ இல் PySide Python ஸ்கிரிப்ட்களைப் பயன்படுத்தி சிக்கல்களை எவ்வாறு சமாளிப்பது

Follow

அறிகுறிகள்

Nuke 11.0v1 உடன் பைதான் ஸ்கிரிப்டைத் தொடங்கும் போது அல்லது அதற்குப் பிறகு, உங்கள் ஸ்கிரிப்ட்டுக்கு Python இன் PySide தொகுதி தேவைப்பட்டால், Nuke ஒரு விதிவிலக்கை எறிந்து அதைத் திறப்பதைத் தடுக்கும்.

கீழே காட்டப்பட்டுள்ளது, Nuke இன் init.py கோப்பில் PySide தொகுதி இறக்குமதி செய்யப்பட்டால், Nuke வெளியீட்டில் பின்வரும் விதிவிலக்கு ஏற்படும்:
Nuke வெளியீட்டு முனையத்தில், Nuke ஒரு PySide தொகுதியை இறக்குமதி செய்ய முடியவில்லை என்பதைக் குறிப்பிடும் ஒரு ImportError காண்பிக்கப்படும், இந்த விஷயத்தில், PySide.QtCore :

காரணம்


Nuke 11.0v1 வெளியீட்டுடன், பல நூலக மாற்றங்கள் ஏற்பட்டன, இது Nuke VFX குறிப்பு தளத்தை இணக்கமாக மாற்றியது.
PySide ஐப் பொறுத்தவரை, இது PySide 1.2.2 இலிருந்து PySide 2.0 க்கு Nuke கோர் நூலகங்களுக்குள் புதுப்பிக்கப்பட்டது, எனவே இது இப்போது PySide ஐ விட Pyside2 ஆக இறக்குமதி செய்யப்படலாம். தற்போது Nuke உடன் அனுப்பப்பட்ட நூலக பதிப்புகள் பற்றிய கூடுதல் தகவலுக்கு, ஆவணத்தின் மூன்றாம் தரப்பு நூலகங்கள் மற்றும் எழுத்துருக்கள் பகுதியைப் பார்க்கவும்.
PySide இலிருந்து PySide2 க்கு மேம்படுத்தப்பட்டதன் விளைவாக, Nuke 11.0v1 இல் தொடங்கி, PySide தொகுதிகள் இனி அழைக்கப்படாது.
உதாரணத்திற்கு:
import PySide.some_module
மாற்றப்பட்டது:

import PySide2.some_module
கூடுதலாக, சில வகுப்புகளின் வரையறை தொகுதிகளுக்கு இடையில் மாற்றப்பட்டுள்ளது. இது குறிப்பாக PySide.QtGui இலிருந்து PySide2.QtWidgets க்கு மாற்றப்பட்ட எந்த GUI தொடர்பான வகுப்புகளையும் பாதிக்கிறது, இருப்பினும், இடமாற்றம் செய்யப்பட்ட மற்ற தொகுதிக்கூறுகளும் உள்ளன.

தீர்மானம்


Nuke தொடங்கும் போது ImportError விதிவிலக்கைத் தீர்க்க, PySide ஐப் பயன்படுத்தும் உங்கள் '.nuke' கோப்புறையில் உள்ள ஏதேனும் ஸ்கிரிப்ட்கள், செயல்படுத்துவதற்கு முன் விதிவிலக்கைப் பிடிக்க மாற்றியமைக்கப்பட வேண்டும்.
விதிவிலக்கைக் ImportError , try அறிக்கைகளை மாற்றியமைப்பதன் except செய்ய முடியும்.
விதிவிலக்கு பிடிக்கப்பட்டால், PySide2 சமமான செயல்பாடுகளை இறக்குமதி செய்ய அழைப்புகளைச் சேர்க்கலாம், இது தொடக்கத்தில் ImportError பிழையைத் தடுக்கும்.

மேலும் தகவல்


காரணம் பிரிவில் குறிப்பிட்டுள்ளபடி, GUI தொடர்பான சில செயல்பாடுகள் மற்ற தொகுதிகளுக்கு நகர்த்தப்பட்டுள்ளன. அனைத்து GUI தொடர்பான பணிகளுக்கும் பயன்படுத்தப்படும் PySide தொகுதி, PySide.QtGui , பெரும்பாலும் PySide2.QtWidgets தொகுதிக்கு நகர்த்தப்பட்டது.
பெரும்பாலான சந்தர்ப்பங்களில், இந்த தொகுதியைப் பயன்படுத்தும் போது, Nuke இல் உள்ள ImportError தவிர்க்கவும், ஒவ்வொரு Pyside.QtGui செயல்பாட்டையும் உங்கள் ஸ்கிரிப்ட்டில் மறுசீரமைப்பதற்குப் பதிலாக, நீங்கள் இப்போது PySide2.QtWidgetsQtGui ஆக இறக்குமதி செய்ய வேண்டும்.
பின்வரும் துணுக்கில் காட்டப்பட்டுள்ளபடி இதை அமைக்கலாம்:

try:
    from PySide import QtGui, QtCore
except ImportError:
from PySide2 import QtCore
from PySide2 import QtWidgets as QtGui
இது பழைய PySide குறியீட்டை PySide2 இல் இயக்க அனுமதிக்கிறது, ஏனெனில் பெரும்பாலான QtGui செயல்பாடுகள் QtWidgets தொகுதிக்கு நகர்ந்துள்ளன. தயவுசெய்து கவனிக்கவும் : இது பல PySide தொகுதிகளுக்கு வேலை செய்யும் வரை, ஆனால் அவை அனைத்தும் இல்லை, எனவே உங்கள் குறியீட்டின் மற்ற பகுதிகளை நீங்கள் இன்னும் புதுப்பிக்க வேண்டியிருக்கும்.
PySide தொகுதிக்கூறுகளைப் பயன்படுத்தும் ஸ்கிரிப்டுகள் Nuke 11 மற்றும் Nuke 12 இல் சரியாகச் செயல்படுவதை உறுதிசெய்ய, நீங்கள் மாற்றத்தை முடிக்க வேண்டும் மற்றும் அனைத்து PySide செயல்பாடுகளும் PySide2 பதிப்புகளாக மறுசீரமைக்கப்பட வேண்டும்.
Nuke 10.5 மற்றும் Nuke 11 அல்லது 12 ஆகிய இரண்டிலும் PySide மற்றும் PySide2 ஐப் பயன்படுத்தும் போது குறியீடு இணக்கத்தன்மையைப் பெற விரும்பினால், Qt.py திட்டம் உங்கள் Nuke பதிப்பைப் பொறுத்து PySide மற்றும் PySide2 தொகுதிகளை மாற்றும் செயல்முறையை வழங்குகிறது.
குறிப்பு : Qt.py திட்டம் மூன்றாம் தரப்பினரால் உருவாக்கப்பட்டது, மேலும் ஏதேனும் சிக்கல்கள் அல்லது கேள்விகள் இருந்தால் மூன்றாம் தரப்பு திட்ட உரிமையாளர்களிடம் தெரிவிக்க வேண்டும்.

கூடுதல் வாசிப்பு


விதிவிலக்குகளைக் கையாள்வது பற்றி மேலும் அறிய விரும்பினால், பின்வரும் இணைப்பில் விதிவிலக்குகள் குறித்த பைதான் ஆவணங்களை அணுகலாம்: பைதான் ஆவணமாக்கல் - விதிவிலக்குகளைக் கையாளுதல்

    We're sorry to hear that

    Please tell us why