[Paul Grasso wrote]
> I want to trace an import statement, but only one so I set
>
> import os
> os.environ["PYTHONVERBOSE"] = "1"
> import wx
> del os.environ["PYTHONVERBOSE"]
>
> but the import wx was NOT traced. Neither was it traced if I use os.putenv.
> Does anyone know how to set python for import tracing within a script?
You cannot use PYTHONVERBOSE for this because Python only reads that
environment variable in its startup code. It is either on for everything
or off.
You'd best be able to do what you want by setting up an "import hook". Here is
an example of something you might want:
import os
def verbose_import_func(name, globals=None, locals=None, fromlist=None):
global old_import_func
module = old_import_func(name, globals, locals, fromlist)
print "import %s # %s" % (name, module.__file__)
return module
def setup_import_hook():
global old_import_func
old_import_func = __import__
__builtins__.__import__ = verbose_import_func
def teardown_import_hook():
__builtins__.__import__ = old_import_func
import cmd
setup_import_hook()
import xml
teardown_import_hook()
I couldn't quickly find very good documentation on Python import hooks, but
here is a start (describing changes to the import hook system in Python 2.3):
http://www.python.org/doc/2.3.5/whatsnew/section-pep302.html
Cheers,
Trent
--
Trent Mick
[EMAIL PROTECTED]
_______________________________________________
ActivePython mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Other options: http://listserv.ActiveState.com/mailman/listinfo/ActivePython