On Aug 6, 2010, at 3:14 PM, W. eWatson wrote: > I must be missing something. I tried this. (Windows, IDLE, Python 2.5) > # Try each module > import sys > import numpy > import scipy > import string > > dependencies = "numyp", "scipy" > for dependency in dependencies: > try: > __import__(dependency.name) > except ImportError: > # Uh oh! > dependency.installed = None > else: > # The module loaded OK. Get a handle to it and try to extract > # version info. > # Many Python modules follow the convention of providing their > # version as a string in a __version__ attribute. > module = sys.modules[dependency.name] > > # This is what I default to. > dependency.installed = "[version unknown]" > > for attribute_name in ("__version__", "__VERSION__", "VERSION", > "version"): > if hasattr(module, attribute_name): > dependency.installed = getattr(module, attribute_name) > break > > The result was this. > Traceback (most recent call last): > File "C:/Users/Wayne/Sandia_Meteors/Trajectory_Estimation/dependency_code", > line 10, in <module> > __import__(dependency.name) > AttributeError: 'str' object has no attribute 'name' > -- > http://mail.python.org/mailman/listinfo/python-list
dependencies = "numpy", "scipy" is a tuple of two strings, when you do your for loop you first get "numpy" (a string) and it does not have a .name attribute. Tommy -- http://mail.python.org/mailman/listinfo/python-list