From: Pete Meyer <pameyer@mcw.edu>
To: John Ladasky <blind.watchmaker@yahoo.com>
Cc: "pymol-users@lists.sourceforge.net" <pymol-users@lists.sourceforge.net>
Sent: Wednesday, January 11, 2012 10:09 AM
Subject: Re: [PyMOL] PyMol 1.4 not running on Ubuntu Linux 11.10

Hi John,

I don't think you need a re-install.  My take on the problem is that using the repositories installs the pymol libraries to the system python (not sure offhand which that is for ubuntu 11.10).  But pymol is apparently trying to start up with "/usr/bin/env python", which is picking up the python you've got installed in /usr/local.

Short version - try edit pymol (probably /usr/bin/pymol) to hard-code the system python.


Hi Pete,

You were correct!  I also got an off-line message from David Hall which suggested the same problem.  Thanks to you both, I have PyMol running again.

Here is a copy of my edited /usr/bin/pymol shell script, for anyone who might need it:

==========

#!/bin/sh
# debian wrapper script for pymol
#
# Modified by John Ladasky 2012-01-11
# This modified script explicitly invokes the system python, /usr/bin/python.
# If this is not done, the system attempts to use /usr/env/python, which 
# points at /usr/local/python by default (at least it does on Ubuntu Linux 
# 11.10 -- other operating systems may vary).

export PYMOL_PATH=`/usr/bin/python2.7 -c "from imp import find_module; print find_module('pymol')[1]"`
export PYMOL_DATA=/usr/share/pymol
export CHEMPY_DATA=/usr/share/chempy

/usr/bin/python2.7 -m pymol.__init__ ${1+"$@"}

==========

I just checked through my file system, and discovered that I have no less than three installed Python 2.7 executables: one in /usr/bin, one in /usr/local/bin, and a third one in /usr/lib/debug/usr/bin.  All three executables are also different sizes: 2.6 MB, 4.4 MB, and 3.8 MB, respectively.  Wow, really?  I'm familiar with the idea of doing an "alternate install" of Python so that one can have two revisions at once -- say, 2.6 and 2.7.  But installing the same version of Python multiple times, what could be the purpose of that?  Does it have something to do with protecting the system namespace?  I know that Linux depends on Python pretty heavily, and it could be lethal to overwrite an essential module name.