私はここで何か不適切なことをしているように見えますが、私はそれが何であるかには唖然としています。私はMayaの中からThe Foundry NUKEを立ち上げようとしています。試してみると、見つからないモジュールに関するこのエラーが出ます。しかし、定期的なコマンドラインでNukeをロードすると、完全にうまくロードされます。 MayaのPythonインタプリタに関連する何かがこのモジュールを見つけることができないと思われますか?私はそれを見つけることができないようです...Maya内でNukeを起動するにはどうすればよいですか?
更新#1:私はさらに、ヌークプラグイン、DLL、libのいくつかのsys.path.appendsを実行しようとしています。 ..
更新#2:私はPythonを再インストールし、64ビットであることを確認しました。また、64ビットのMayaとNukeのバージョンも確認しました。私は次のようにも試しました... os.system呼び出しでNukeをロードするために、Maya以外の通常のPythonコマンドプロンプトを開き、それが動作します。この_socketモジュールをインポートする際に問題が発生して失敗するのは、MayaのNukeのos.system呼び出しを行うときだけです。 Mayaがロードされたモジュール_socket何チェックするときに私が取得:MayaのPythonはこの_socketの差分バージョンをロードしていることを信じて私をリードする
import _socket
print _socket.__file__
C:\Program Files\Autodesk\Maya2016\Python\DLLs\_socket.pyd
その後、ハァハァであり、何かが間違ってそこに何が起こっていますか。
オリジナルコード/エラー:
C:\Program Files\Nuke9.0v8\Nuke9.0.exe
Traceback (most recent call last):
File "C:/Program Files/Nuke9.0v8/plugins/init.py", line 22, in <module>
import nukescripts.ViewerProcess
File "C:/Program Files/Nuke9.0v8/plugins\nukescripts\__init__.py", line 22, in <module>
from nukeprofiler import *
File "C:/Program Files/Nuke9.0v8/plugins\nukescripts\nukeprofiler.py", line 2, in <module>
import socket
File "C:\Python27\lib\socket.py", line 47, in <module>
import _socket
ImportError: DLL load failed: The specified module could not be found.
C:/Program Files/Nuke9.0v8/plugins/init.py : error interpreting this plugin
from PySide import QtCore, QtGui
import maya.cmds as cmds
import os, sys
#import subprocess
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(314, 216)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(Dialog.sizePolicy().hasHeightForWidth())
Dialog.setSizePolicy(sizePolicy)
self.blastBtn = QtGui.QPushButton(Dialog)
self.blastBtn.setGeometry(QtCore.QRect(110, 130, 75, 23))
self.blastBtn.setObjectName("blastBtn")
self.blastBtn.clicked.connect(self.RunPlayblast)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Playblast & Nuke Me", None, QtGui.QApplication.UnicodeUTF8))
self.blastBtn.setText(QtGui.QApplication.translate("Dialog", "Blast", None, QtGui.QApplication.UnicodeUTF8))
def RunPlayblast(self):
cmds.playblast(fmt="qt", f="myMovie.mov", fo=True)
self.RunNuke()
def RunNuke(self):
nukeExe = r'C:\Program Files\Nuke9.0v8\Nuke9.0.exe'
myTemplate = r'B:\home\nukePBTemplate.nk'
os.system('"'+nukeExe+'" -x ' +myTemplate)
#command = nukeExe+" -x "+myTemplate
#subprocess.Popen(command)
if __name__ == '__main__':
app = QtGui.QApplication.instance()
Dialog = QtGui.QDialog()
blastMe = Ui_Dialog()
blastMe.setupUi(Dialog)
Dialog.show()
app.exec_()
DLLのエラーが原因の一つを思い出させる:あなたは、Pythonの異なるビットバージョンのハァハァをインストールしている場合があります。 64ビットのPythonモジュールは64ビットのPython用に構築され、32ビットのPythonモジュールは32ビットのPython用です。正しいバージョンをアンインストールして再インストールすることで、エンディアンの不一致を排除することを検討してください。 –
ありがとうございます。これが犯人かどうか今私は疑問に思っています。私はそれを調べなければならないでしょう...それが不満なモジュールがパスに追加されているとして、それはまだ不平を言います。 – Zak44