단:이거 왜 등록이 안되나요?
문제
Gimp와 동기화하기 위해 Blender용 추가 기능을 작성 중입니다. 이 스크립트는 Gimp 내에서 시작할 수 있어야 하는데 등록할 수 없습니다.왜?
blender_gimp_sync.py:
# -*- coding: utf-8 -*-
#!/usr/bin/env python
from gimpfu import *
def blender_gimp_sync():
image_dir = "/home/antoni4040/Έγγραφα/Layout.png"
image = gimp.pdb.gimp_file_load(image_dir, image_dir)
gimp.Display(image)
register(
"python_fu_bgsync",
"Blender-Gimp Sync",
"Syncronize Gimp with Blender for texturing",
"Antonis Karvelas",
"Antonis Karvelas",
"2012",
"<Image>/Image/Blender-Gimp Sync",
"*",
[],
[],
blender_gimp_sync
)
main()
정말 이상해요...
해결책
당신은 어떤 오류가 발생하는지 말하지 않았지만 소스 파일을 게시했기 때문에 추측할 수 있다고 생각합니다.김프는 플러그인이 시스템에 의해 실행될 것으로 예상합니다. Posix(리눅스 포함) 시스템에 파일이 특정 인터프리터나 쉘로 실행되어야 한다고 알려주는 것은 shebang 라인입니다. #!/usr/bin/env python
귀하의 예에서.
그러나 이 라인은 첫 번째 파일의 줄 - #!
그 안에 있는 문자는 파일의 처음 두 문자여야 합니다.문자 인코딩을 나타내는 줄 - # -*- coding: utf-8 -*-
그 뒤에 와야 합니다. 파일의 두 번째 줄이어야 하며 사이에 빈 줄이 없어야 합니다.
마지막으로 Python 파일에서 "chmod a+x "를 실행하여 스크립트를 실행 가능하도록 설정하십시오.
관련이 있지만 문제의 원인이 아니기 때문에 스크립트 메뉴 이름과 함께 메뉴 경로를 입력하는 것은 김프에서 더 이상 사용되지 않습니다. 이를 수행하는 올바른 방법은 "date" 매개변수 뒤에 표시해야 하는 이름만 전달하는 것입니다. 메뉴에서 - "동기화" - 호출이 끝날 때 다음과 같이 메뉴 경로를 명명된 매개변수로 전달합니다. menu="<Image>/Image/Blender-Gimp"