On Jun 4, 2012, at 3:45 PM, Greg Von Kuster wrote:

Hello Shantanu,

Sorry for the delay on this - I've been backed up since the weekend when we were trading emails.  The way Galaxy works with eggs is fairly complex with regard to handling conflicts, which is undoubtedly what is happening in your environment since you have the mercurial package installed for your Python 2.6.  Your environment probably results in a conflict that is not properly handled by the version_conflict() method in ~/lib/galaxy/eggs/__init__.py.  


On Jun 4, 2012, at 4:04 PM, Shantanu Pavgi wrote:


Just want to update on the list about this error. I had followed up with Greg on this issue off-list as I didn't want to share all the hg output here on the list.

The galaxy had downloaded Mercurial egg however it's directory wasn't defined in the PYTHONPATH environment variable. However, it was included in the sys.path which I verified by printing it in the tool migration application. While debugging this issue, I downloaded Mercurial (egg) externally using easy_install tool and set up PYTHONPATH to point to this external Mercurial egg. After this the tool migration script worked fine.

So should this galaxy-mercurial egg directory and other galaxy egg directories be included in the PYTHONPATH environment variable?


For Galaxy, you really don't have to set PYTHONPATH at all, so if you are not using it for other Python related stuff on your Galaxy server, try unsetting it, and Galaxy's mercurial egg will probably be found.  If you need PYTHONPATH set, take a look at the version_conflict() method in ~/lib/galaxy/eggs/__init__.py and see if you can figure out what is not being handled in your environment.



Also, I noticed that tool migration application failed again when I had default sqlite database URL mentioned in the universe_wsgi.ini file as it is (commented out). It works fine if the default database URL is uncommented.

I'll take a look at this.  Thanks for reporting it.


{{{
$ sh ./scripts/migrate_tools/0002_tools.sh
Traceback (most recent call last):
File "./scripts/migrate_tools/migrate_tools.py", line 21, in <module>
  app = MigrateToolsApplication( sys.argv[ 1 ] )
File "/home/shantanu/tmp/galaxy-dist/lib/galaxy/tool_shed/migrate/common.py", line 81, in __init__
  object_store=self.object_store )
File "/home/shantanu/tmp/galaxy-dist/lib/galaxy/model/mapping.py", line 1836, in init
  load_egg_for_url( url )
File "/home/shantanu/tmp/galaxy-dist/lib/galaxy/model/mapping.py", line 1816, in load_egg_for_url
  dialect = guess_dialect_for_url( url )
File "/home/shantanu/tmp/galaxy-dist/lib/galaxy/model/mapping.py", line 1812, in guess_dialect_for_url
  return (url.split(':', 1))[0]
AttributeError: 'bool' object has no attribute 'split'

}}}

--
Thanks,
Shantanu




Greg,

Thanks for the reply. I don't have any rush on this issue but just wanted to update on the list before I forget about it. 

I was using PYTHONPATH only to get an external tool dependency (MACS) in the galaxy's environment. As you mentioned, this may have caused some issues while locating galaxy-Mercurial egg, which got resolved after I externally installed Mercurial and also got it in PYTHONPATH.

I tried unsetting PYTHONPATH completely which got external - MACS and mercurial - installations out of the galaxy environment, however, it didn't resolve the tool migration error. I will dig into this issue later in the week. Right now it's not a blocking issue as I have migrated EMBOSS tool using external-Mercurial. Thanks for pointing out the code details. 

--
Shantanu