2013-05-25 39 views
1

我想在批處理模式下執行一段Python代碼來編輯現有的Gimp文件。得到以下錯誤在批處理模式下的瘸子Python

批處理命令經歷執行錯誤: 錯誤:(1:1)的eval:未結合的變量:條命令行-執行

這裏是我使用的代碼:


#!/usr/bin/env python 

from gimpfu import * 

# the script 
def my_tf_cmd_function(fle, fontname, fontsize) : 
    image = pdb.gimp_file_load(fle,fle) 
    drawable = pdb.gimp_image_get_active_layer(image) 
    image.undo_group_start() 
    foreground = gimp.get_foreground() 
    gimp.set_foreground(240,240,240) 
    textlayer1 = gimp.Layer(image, "Troo", drawable.width, drawable.height, RGBA_IMAGE, 100, NORMAL_MODE) 
    image.add_layer(textlayer1, 0) 
    pdb.gimp_drawable_fill(textlayer1, 3) # transparent fill 
    gimp.set_background(255, 255, 255) 
    gimp.set_foreground(240,240,240) 
    floattext = pdb.gimp_text_fontname(image, textlayer1, 200, 100, "T", 1, 1, fontsize, 1, fontname) 

    pdb.gimp_floating_sel_anchor(floattext) 
    gimp.set_foreground(foreground) 
    image.undo_group_end() 
    pdb.gimp_file_save(image, drawable, "/home/Downloads/img.xcf", "/home/Downloads/img.xcf") 
    return 


# This is the plugin registration function 
register(
    "command_line_execution",  
    "My Command Line Attempt Python-Fu", 
    "This script does nothing and is extremely good at it", 
    "RC",  
    "RC", 
    "May 2013", 
    "<Image>/MyScripts/My Command Python-Fu", 
    "*", 
    [ 
     (PF_STRING, "fle", "GlobPattern", "*.*"), 
     (PF_FONT, "fontname", "Foo font", "Arial"), 
     (PF_INT, "fontsize", "Foo font size", 18) 
    ], 
    [], 
    my_tf_cmd_function, 
    ) 

main() 

請幫忙。

+0

你之前'/ home..' – mata

+0

缺失報價jupp,將'/home/Downloads/img.xcf''改成'「/ home/Downloads/img。xcf「'這就是語法突出的美妙之處 –

+0

感謝您的快速回復。file_save語句有正確的引號,但是我仍然得到錯誤。 –

回答

-2

完整的答案在這裏solving gimp unbound variable error

所以我試圖找出如何運行GIMP的功能時,碰到這個問題就來了。

而且我發現這裏的答案:IBM developerWorks

所以基本上你調用該函數,像這樣:

gimp -i -b '(python-fu-command-line-execution 0 0 0 "*.*" "Arial" 18)' -b '(gimp-quit 0)'

前3個零是3個默認參數:

  • INTERACTIVE MODE OR NOT
  • img IMAGE
  • draw DRAWABLE

我知道你的代碼並沒有真正使用任何這些,但這些都需要,所以......和他們爲什麼必須是整數,我不知道我自己。我試錯了,發現INTEGER適合我。

如果有人對所發生的事情有更好的理解,請啓發。

編輯:

所以我有這個問題我自己開始...我發現該Error: (: 1) eval: unbound variable: commmand-line-execution錯誤是通過CLI中Scheme語言插入批處理命令時引起的。

但要檢查您的功能是否已註冊,請轉至程序瀏覽器(Help > Procedure Browser)並搜索您的功能(它將類似於python-fu-command-line-execution)。

如果它不在那裏,請查看這篇關於在哪裏放置插件文件以獲得註冊的文章:wikibooks

如果它已註冊,您可以嘗試在控制檯中運行它。 (Filters > Python Fu > Console),如果它運行,您的代碼沒有問題。

但都是一樣的,你應該嘗試先在格式運行命令,錯誤的東西與所給出的方案命令

+0

不幸的是,這與使用'gimpfu'庫無關, – SiHa

+0

'錯誤:(:1)eval:unbound變量:命令行執行錯誤是當您嘗試從它使用的命令行調用函數時Scheme運行插件...以檢查您的函數是否已正確註冊,你可以進入程序庫('Help> Procedure Browser')或者在控制檯('Filters> Python Fu> Console')中運行它。事情是......所有的插件最終都被「轉換」爲方案功能。 – ongspxm