[pygtk] importing gtk modifies sys.path

Johan Dahlin jdahlin at async.com.br
Fri Nov 4 05:10:35 WST 2005


Jeffery Collins wrote:
> Almost.  I applied the patch to my 2.4 version; below is output of a 
> pychecker call to a file that prints sys.path before and after the gtk 
> module import.
> pychecker jnk.py
> Processing jnk...
> 
> ['', '/opt/vexcel/openev2/lib/python24.zip', 
> '/opt/vexcel/openev2/lib/python2.4', 
> '/opt/vexcel/openev2/lib/python2.4/plat-linux2', 
> '/opt/vexcel/openev2/lib/python2.4/lib-tk', 
> '/opt/vexcel/openev2/lib/python2.4/lib-dynload', 
> '/opt/vexcel/openev2/lib/python2.4/site-packages', 
> '/opt/vexcel/openev2/lib/python2.4/site-packages/Numeric', 
> '/opt/vexcel/openev2/lib/python2.4/site-packages/gtk-2.0']
> 
> ['/opt/vexcel/openev2/lib/python2.4/site-packages/pychecker', '', 
> '/opt/vexcel/openev2/lib/python24.zip', 
> '/opt/vexcel/openev2/lib/python2.4', 
> '/opt/vexcel/openev2/lib/python2.4/plat-linux2', 
> '/opt/vexcel/openev2/lib/python2.4/lib-tk', 
> '/opt/vexcel/openev2/lib/python2.4/lib-dynload', 
> '/opt/vexcel/openev2/lib/python2.4/site-packages', 
> '/opt/vexcel/openev2/lib/python2.4/site-packages/Numeric', 
> '/opt/vexcel/openev2/lib/python2.4/site-packages/gtk-2.0']
> 
> Since the pychecker name and '' differ, the delete didn't work.
> 
> Is there any reason why we cannot preserve the path through the import?
> 
> import sys
> _save_path = sys.path[:]
> from _gtk import *
> sys.path = _save_path
> del sys, _save_path
> 
> This does work for my limited test cases.

Okay, seems simple enough for me. I commited something very similar.

Johan


More information about the pygtk mailing list