If your tool defines a package requirement like:
<requirements>
<requirement type="package"
version="1.0.0">galaxy-sequence-utils</requirement>
</requirements>
And your tool_dependency_dir setting universe_wsgi.ini is something
like /data/galaxy_deps - then you should be able to create a file
/data/galaxy_deps/galaxy-sequence-utils/1.0.0/env.sh with contents
like
. /data/galaxy_deps/galaxy-sequence-utils/1.0.0/venv/bin/activate
This will cause that tool's jobs to source that isolated environment
before execution. You should then be able to setup this virtual
environment using the following commands:
virtualenv /data/galaxy_deps/galaxy-sequence-utils/1.0.0/venv
. /data/galaxy_deps/galaxy-sequence-utils/1.0.0/venv/bin/activate
easy_install
This may require installing some system Python packages such as
python-virtualenv on Ubuntu.
Hope this helps.
-John
On Mon, Jul 7, 2014 at 9:31 AM, julie dubois <dubjulie(a)gmail.com> wrote:
Thanks!
Actually it's not for the toolshed, for the moment...
But I'm very intereseted by details to install it into a virtualenv.
Thank you.
Julie
2014-07-07 16:16 GMT+02:00 John Chilton <jmchilton(a)gmail.com>:
> Ahhh - I get it now. Galaxy only adds itself to the PYTHONPATH if it
> can infer it is running a Python script (i.e. the command block starts
> with python or a Python interpreter is used).
>
> If you are building a tool for the tool shed - it would be best to
> setup a tool dependency on the galaxy_sequence_utils package - this
> would force every execution of the tool to have these utilities on
> your PYTHONPATH. But since you are hard-encoding paths - it looks like
> you are tailoring your Galaxy instance to your local environment. In
> this case an easy hack is to just setup that dependency globally for
> the system:
>
> sudo easy_install
>
http://depot.galaxyproject.org/package/source/galaxy_sequence_utils/galax...
>
> If you are setting up Galaxy env.sh files this can be installed into a
> virtualenv instead - which is a better practice - let me know if you
> are interested and I can send details.
>
> -John
>
>
>
>
> On Mon, Jul 7, 2014 at 4:02 AM, julie dubois <dubjulie(a)gmail.com> wrote:
>> Hi John,
>>
>> As I specified it in the "edit" of my first message, I have this error
>> only if I run groomer with a command line in another xml file
>> surrounding by other command. When I run groomer alone with the
>> original xml, it works fine, so no problem with the PYTHONPATH.
>> But when I use this :
>> <command>
>> #if $fastq_format == "illumina"
>> blabla_No_python_command
>> #else
>> python /data/galaxy-dist/tools/fastq/fastq_groomer.py
>> 'tmp.fastqcssanger' 'cssanger' '$output'
'illumina' 'ascii'
>> 'dont_summarize_input'
>> #end if
>> </command>
>>
>> It doesn't work.
>>
>> I've checked the files contained in job_working_directory. A shell
>> script is generated for my job and it begin with these lines :
>>
>> #!/bin/sh
>>
>> GALAXY_SLOTS="1"; export GALAXY_SLOTS;
>> export GALAXY_SLOTS
>> GALAXY_LIB="None"
>> if [ "$GALAXY_LIB" != "None" ]; then
>> if [ -n "$PYTHONPATH" ]; then
>> PYTHONPATH="$GALAXY_LIB:$PYTHONPATH"
>> else
>> PYTHONPATH="$GALAXY_LIB"
>> fi
>> export PYTHONPATH
>> fi
>>
>>
>>
>> So, with the run of groomer alone the line GALAXY_LIB is equal to
>> "/data/galaxy/galaxy-dist/lib", but here with the run of groomer with
>> a command line with another job the GALAXY_LIB is set to "None"!!!
>> I don't understand why.
>>
>> For the moment, to surround the problem, I've explicitly specified the
>> GALAXY_LIB path int the xml command before the command line wich run
>> python fastq_groomer.py and it works but I'm aware that is not
>> beautiful.
>>
>> Finally I'm using a local jobrunner.
>>
>> Thanks for your help
>> Julie
>>
>> P.S : we use such command because we build a workflow where the
>> quality format of the fastq must be invisible for the users.
>>
>> 2014-07-03 19:48 GMT+02:00 John Chilton <jmchilton(a)gmail.com>:
>>> Hello Julie,
>>>
>>> This is odd - sorry.
>>>
>>> I might be worth uninstalling and re-installing this in the tool
>>> shed admin options - in particular ensure you install tool
>>> dependencies and that this installation process succeeds.
>>>
>>> Otherwise - it might be worth trying to put some debug statements
>>> in the fastq groomer tool to try to track down the problem. Here
>>> (
https://gist.github.com/jmchilton/2d61f7ab81d99a0f02fc) is a diff to
>>> have that tool write out the run-time value PYTHONPATH to Galaxy's
>>> home directory - it might be worth running a job, finding the output,
>>> setting PYTHONPATH to that value on the compute node and attempting to
>>> just import it directly.
>>>
>>> cd $HOME; python -c "import galaxy.sequences.fastq"
>>>
>>> Out of curiosity - what job runner are you using (local, DRMAA, etc...)?
>>>
>>> -John
>>>
>>> On Tue, Jul 1, 2014 at 4:50 AM, julie dubois <dubjulie(a)gmail.com>
wrote:
>>>> Hi,
>>>> I've this error message when I run groomer.
>>>>
>>>> My local instance of galaxy runs on a python virtualenv (python 2.7)
>>>> and I have make the latest update with : hg pull -u.
>>>>
>>>> I've verified and this library is present in my
>>>> galaxy-dist/lib/galaxy_utils/sequence directory.
>>>>
>>>> I've found no other idea than the update on this forum to run
groomer
>>>> correctly, any other idea ?
>>>>
>>>> Thanks.
>>>> Julie
>>>> ___________________________________________________________
>>>> Please keep all replies on the list by using "reply all"
>>>> in your mail client. To manage your subscriptions to this
>>>> and other Galaxy lists, please use the interface at:
>>>>
http://lists.bx.psu.edu/
>>>>
>>>> To search Galaxy mailing lists use the unified search at:
>>>>
http://galaxyproject.org/search/mailinglists/