On Thu, Apr 14, 2011 at 3:17 PM, Peter Cock <p.j.a.cock@googlemail.com>wrote:
On Thu, Apr 14, 2011 at 2:08 PM, Leandro Hermida <softdev@leandrohermida.com> wrote:
Hi,
I have a tool with a <code file="my_script.py"/> tag and in that code file I'm trying to get the tool dirpath where that script and the tool XML exist. I've tried:
os.path.abspath(os.path.dirname(sys.argv[0])) os.path.abspath(os.path.dirname(__file__))
And both don't work as expected. Is there a galaxy class I could import which will have the tool directory path?
regards, Leandro
For standard Python tools in Galaxy, I'm using os.path.split(sys.argv[0])[0] to get the path, which on reflection probably should be written as os.path.dirname(sys.argv[0]) as you suggest.
What do __file__ and sys.argv[0] give you? The simplest way to debug this is to add a print statement, since Galaxy will show the stdout.
Hi Peter, __file__ throws an error: global name '__file__' is not defined os.path.abspath(os.path.dirname(sys.argv[0])) gives me /path/to/galaxy/scripts directory which is two levels up from what the tool directory I want for example /path/to/galaxy/tools/mytool Isn't there some Galaxy class I can import? I remember seeing in other code files "import galaxy" and would this have somewhere in it the current tool directory? -Leandro