I am making a plug in in Python for GIMP on Windows. This page suggests running it from the shell or looking at ~/.xsession-errors. Neither work. I am able to run it from the cmd shell as:
gimp-2.8.exe -c --verbose
From here. This causes the output from pdb.gimp_message(...) to go to a terminal, but only works when everything is running as expected. I get no output on crashes. I tried print statements, they go nowhere. This is a similar problem.
Running it from Python-Fu console gets me nowhere. I need to comment out import gimpfu as it raises errors and I don't get GTK working. Even if the plugin registers and shows on the menu, when there is some error I don't know where to look for hints.
- Can I refresh a plugin without restarting GIMP?
- Can I run plugins from the Python-Fu shell as opposed to importing them to make sure they parse?
- Is there an error-log?
- How to run GIMP on Windows from a shell to see output? Am I better off under Cygwin or VirtualBox?
- How to connect Winpdb to a Python process that runs in GIMP?
You must restart GIMP when you add a script or change register(). No need to restart when changing other parts of the script -- it runs as a separate process and will be re-read from disk each time.
helpful source: http://gimpbook.com/scripting/notes.html
Yes, you can access to your registered plug-in in
python-fuconsole as:And can call it like:
Also in
python-fudialog console, you can click toBrowse ..option and find your registered plug-in, and then clickApply, to import it topython-fuconsole.helpful source: http://registry.gimp.org/node/28434
To log, you can define a function like this:
And use it in your code, whenever you want.
To see log of that, in
gimpprogram, openError ConsolefromDockable DialogsinWindowsmenu, otherwise a message box will be pop up on every time you make a log.Also you can redirect
stdinandstdoutto a file,:When you do that, all of
exceptionswill go toerr.txtand all of print out will be go tolog.txtNote that open file withaoption instead ofwto keep log file.helpful sources:
How do I output info to the console in a Gimp python script?
http://www.exp-media.com/content/extending-gimp-python-python-fu-plugins-part-2
I got some error for that, but may try again ...
First install winpdb , and also wxPython ( Winpdb GUI depends on wxPython)
Note that
Gimphas own python interpreter, and may you want to installwinpdbto your default python interpreter or to gimp python interpreter.If you install
winpdbto your default python interpreter, then you need to copyrpdb2.pyinstalled file to..\Lib\site-packagesof gimp python interpreter path.After that you should be able to import
pdb2module fromPython-Fuconsole of gimp:Now in your plug-in code, for example in your main function add following code:
Next, go to gimp and run your python plug-in, when you run your plug-in, it will run and then wait when reach to above code.
Now to open
Winpdb GUIgo to..\PythonXX\Scriptsand runwinpdb_.pyw.(Note that when using Winpdb for remote debugging make sure any firewall on the way has TCP port 51000 open. Note that if port 51000 is taken Winpdb will search for an alternative port between 51000 and 51023.)
Then in
Winpdb GUIfromFilemenu selectattachand givepassas password to it, and then you can see your plug-in script on that list, select it and start your debug step by step.helpful resource: Installing PyGIMP on Windows
Useful sources:
http://wiki.gimp.org/index.php/Hacking:Plugins
http://www.gimp.org/docs/python/index.html
http://wiki.elvanor.net/index.php/GIMP_Scripting
http://www.exp-media.com/gimp-python-tutorial
http://coderazzi.net/python/gimp/pythonfu.html
http://www.ibm.com/developerworks/opensource/library/os-autogimp/os-autogimp-pdf.pdf