See the Chimera Programmer's FAQ, question #3, http://www.cgl.ucsf.edu/chimera/docs/ProgrammersGuide/faq.html#q3, for how to write a shell script wrapper around a chimera script to hide the fact that chimera is running the script instead of python and use getopt everywhere.

    -- Greg

On 03/15/2011 02:12 PM, Eric Pettersen wrote:
On Mar 15, 2011, at 5:37 AM, wascm wrote:

Dear sir:

Thanks for the detailed reply!

When the following code was added to the start of sciprt:

import chimeraInit
chimeraInit.init(nogui=True, silent=True)


The interpreter print the following confused error:

---------------------------------------------
Traceback (most recent call last):
 File "./xx.py", line 5, in <module>
 chimeraInit.init(nogui=True, silent=True)
TypeError: init() takes at least 1 argument (2 given)


There was an oversight in the code Greg provided:  chimeraInit.init takes a mandatory "argv" argument, which is exactly like sys.argv.

-----------------------------------------------

it's really easy and convenient to running python script with chimera. The reason for i want to run python script independently is that i want add some custom command option. However, if i run python script with chimera, it's hard for me to add some custom command option and handle it in the script though getopt module.

For example, when i run some command like this:

chimera –nogui test.py -t test

test.py
###################
#!/usr/bin/python

t=None

try:
    opts, args = getopt.getopt(sys.argv[1:], "t:")
except getopt.GetoptError, err:
    pass
finally:
    for arg_k, arg_v in opts:
        if (arg_k =="-t"): t=arg_v
####################################

This will raise running exception!

is there a way for me to add the coustom option to python script and run the script with chimera?

Yes.  Use a --script argument, like this:

chimera --nogui --script "test.py -t test"

--Eric


_______________________________________________ Chimera-dev mailing list Chimera-dev@cgl.ucsf.edu http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-dev