Hello, I'm fairly new to python (version 2.5.4), and am writing a program which uses both pymol (version 1.2r1) and numpy (version 1.3.0) from debian.
It appears that when I add pymol to $PYTHONPATH, that parser.expr() is no longer available, and so I am unable to use numpy.load(). I have looked for where parser.expr() is defined in the python system so I could place that directory first in $PYTHONPATH, but I have not been able to find the file that defines expr(). My reason for using numpy.load() is that I have a numpy array which takes an hour to generate. Therefore, I'd like to use numpy.save() so I could generate the array one time, and then load it later as needed with numpy.load(). I've successfully tested the use of numpy.save() and numpy.load() with a small example when the pymol path is not defined in $PYTHONPATH : >>> import numpy >>> numpy.save('123',numpy.array([1,2,3])) >>> numpy.load('123.npy') array([1, 2, 3]) However, a problem arises once $PYTHONPATH includes the pymol directory. To use the pymol api, I add the following to ~/.bashrc: PYMOL_PATH=/usr/lib/pymodules/python2.5/pymol export PYMOL_PATH PYTHONPATH=$PYMOL_PATH export PYTHONPATH Once this is done, numpy.load() no longer works correctly, as pymol contains a file named parser.py ( /usr/lib/pymodules/python2.5/pymol/ parser.py ), which apparently prevents python from using its native parser. >>> numpy.load('123.npy') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.5/site-packages/numpy/lib/io.py", line 195, in load return format.read_array(fid) File "/usr/lib/python2.5/site-packages/numpy/lib/format.py", line 353, in read_array shape, fortran_order, dtype = read_array_header_1_0(fp) File "/usr/lib/python2.5/site-packages/numpy/lib/format.py", line 250, in read_array_header_1_0 d = safe_eval(header) File "/usr/lib/python2.5/site-packages/numpy/lib/utils.py", line 840, in safe_eval ast = compiler.parse(source, "eval") File "/usr/lib/python2.5/compiler/transformer.py", line 54, in parse return Transformer().parseexpr(buf) File "/usr/lib/python2.5/compiler/transformer.py", line 133, in parseexpr return self.transform(parser.expr(text)) AttributeError: 'module' object has no attribute 'expr' If I understand the problem correctly, can anyone tell me where python.expr() is defined, or suggest a better method to fix this problem? Thanks, Jeremiah -- http://mail.python.org/mailman/listinfo/python-list