python parser overridden by pymol

Dave Angel davea at ieee.org
Fri Nov 13 04:33:38 CET 2009



Robert Kern wrote:
> <div class="moz-text-flowed" style="font-family: -moz-fixed">Jeremiah 
> H. Savage wrote:
>
>> To use pymol and numpy together, I now do the following:
>>
>> To ~/.bashrc add:
>>         PYMOL_PATH=/usr/lib/pymodules/python2.5/pymol
>>         export PYMOL_PATH
>>
>> Then I can do the following in python:
>>
>>      import numpy
>>      numpy.save('123',numpy.array([1,2,3]))
>>      numpy.load('123.npy')
>>            array([1, 2, 3])
>>      import sys
>>      sys.path.append( "/usr/lib/pymodules/python2.5/pymol")
>>      import pymol
>>      pymol.finish_launching()
>>      pymol.importing.load("/path/to/file.pdb")
>
> No, do not do this. Add /usr/lib/pymodules/python2.5/ to your 
> $PYTHONPATH, *not* /usr/lib/pymodules/python2.5/pymol/. You will 
> continue to run into problems if you do it this way. You are not 
> supposed to put the directory *of* the package onto sys.path but 
> rather the directory that *contains* the package directory.
>
As I said before, I don't know pymol.  But if that is the package name, 
then Robert is certainly right.  You need to read the docs on pymol to 
see what they require.  For example, it's surprising they require a 
separate PYMOL_PATH environment variable, since they can find their own 
directory path with the __file__ attribute of one of the modules.

Anyway, one more generic comment.  Rather than having that directory in 
both the bashrc file  AND in your python source, I'd consider deriving 
the latter from the environment variable, once you determine that it's 
actually necessary.  And of course you could strip the last node from 
the path in the environment variable before appending it to sys.path, if 
that's what's appropriate.

DaveA







More information about the Python-list mailing list