vaccine_gene&breed_gene 대책
vaccine_gene
breed_gene
하지만 MayaScanner를 설치하면 감염 전에 멈추게됩니다.
설치하지 않거나 로드하지 않으면 감염됩니다.
실수로 감염되어 버린 실수 씨를 위해 대응책을 생각한다.
처리 확인
감염 "감염"이라고 말하고 있지만, 실제로 무엇이 어떻게 처리되고 있는지를 확인해 본다.
1: 감염된 파일 열기
2: vaccine_gene 스크립트 실행
cmds.internalVar(userAppDir=True) + '/scripts'에 있는 userSetup.py
import vaccine
cmds.evalDeferred('leukocyte = vaccine.phage()')
cmds.evalDeferred('leukocyte.occupation()')
를 추가한다. 존재하지 않으면 생성
3:breed_gene 스크립트가 실행됨
vaccine_gene.notes의 내용을 사용하여
cmds.internalVar(userAppDir=True) + '/scripts'에 vaccine.py 생성
4:maya 재부팅
userSetup.py가로드됩니다.
import vaccine
cmds.evalDeferred('leukocyte = vaccine.phage()')
cmds.evalDeferred('leukocyte.occupation()')
시작시 실행됩니다.
그러면 스크립트 작업이 장면에 추가됩니다.
cmds.scriptJob(event=["SceneSaved", "leukocyte.antivirus()"], protected=True)
5: 파일 저장
vaccine.py가 실행되어 vaccine_gene과 breed_gene을 장면에 생성합니다.
즉, 감염된 상황이란 무엇입니까?
상황이 된다.
대응
1:vaccine.py 제거
cmds.internalVar(userAppDir=True) + '/scripts'
위치를 열고 vaccine.py 및 vaccine.pyc 삭제
최소한 이것을 해두면 vaccine_gene 과 breed_gene 는 생성되지 않게 된다.
다만 userSetup 로 이끼 하게 되기 때문에, 개인적으로 userSetup 를 커스텀 하고 있는 경우에는 다음항도 필요.
2:userSetup.py 재편집
cmds.internalVar(userAppDir=True) + '/scripts'
위치를 열고 userSetup.py의 내용을 확인하십시오.
import vaccine
cmds.evalDeferred('leukocyte = vaccine.phage()')
cmds.evalDeferred('leukocyte.occupation()')
이 세 줄을 삭제.
1은 어쨌든, 2는 조금 장애물이 높기 때문에, 정리해 스크립트화해 본다.
targetPath = cmds.internalVar(userAppDir=True) + '/scripts'
##vaccine.py vaccine.pycの削除
if os.path.exists(targetPath + "/vaccine.py"):
os.remove(targetPath + "/vaccine.py")
print("remove " + targetPath + "/vaccine.py")
if os.path.exists(targetPath + "/vaccine.pyc"):
os.remove(targetPath + "/vaccine.pyc")
print("remove " + targetPath + "/vaccine.pyc")
##userSetup.py の編集
##念のため編集前のファイルをuserSetup_backupとして保存
if os.path.exists(targetPath + "/userSetup.py"):
removeLine = [
"import vaccine",
"cmds.evalDeferred('leukocyte = vaccine.phage()')",
"cmds.evalDeferred('leukocyte.occupation()')"
]
output = []
health = True
with open(targetPath + "/userSetup.py", "r") as f:
for line in f:
line = line.rstrip()
if line in removeLine:
health = False
else:
output.append(line + "\n")
f.close()
if health == False:
shutil.copy2(targetPath + "/userSetup.py", targetPath + "/userSetup_backup")
print("backuped " + targetPath + "/userSetup_backup")
with open(targetPath + "/userSetup.py", "w") as f:
f.writelines(output)
f.close()
print("edited " + targetPath + "/userSetup.py")
그러나 감염 상태에서 Maya를 시작하면
cmds.scriptJob(event=["SceneSaved", "leukocyte.antivirus()"], protected=True)
이것이 활성이기 때문에 vaccine.py가 생성됩니다.
추가
for i in cmds.scriptJob(listJobs =True):
if "leukocyte.antivirus()" in i:
index = int(i.split(":")[0])
cmds.scriptJob(kill = index, force =True)
대상 스크립트 작업을 제거.
Reference
이 문제에 관하여(vaccine_gene&breed_gene 대책), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/9boz/items/03ea0c56bafebd2d2466텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)