Load objects using __import__

MindClass jonas.esp at googlemail.com
Tue Nov 21 14:14:46 CET 2006


I load objects from a file (to django framework _but it's a python
question_).

1) Before I used this
    from project.I18n.models import *

And to load the object
    c1 = Country(name="Afghanistan")

But the problem is that there is to edit 'project' manually.

2) So I setup the environment and import the module:
    project_directory = os.path.abspath('')
    project_name = os.path.basename(project_directory)
    os.environ['DJANGO_SETTINGS_MODULE'] = "%s.settings" % project_name
    sys.path.append(os.path.dirname(project_directory))
    module = __import__('%s.I18n.models' % (project_name), {}, {},
[''])
    sys.path.pop()

It's all correct until here and to checking it I run:
    print i18n_module
    <module 'project.I18n.models' from
'/home/lala/django/project/I18n/models.pyc'>

    print i18n_module.Country
    <class 'project.I18n.models.Country'>

But when I load the object I get
    SyntaxError: invalid syntax

    c1 = <module 'project.I18n.models' from
'/home/lala/django/project/I18n/models.pyc'>.Country(name="Afghanistan")

Any idea?




More information about the Python-list mailing list