Hi, I am following tutorial (for Django 1.8 
<https://docs.djangoproject.com/en/1.8/intro/tutorial01/>), I am using 
Windows 8, Pycharm, Python 2.7.9 and Django 1.8.3.
I have reached the third chapter (on views) and somewhere on the way I 
restarted my laptop and probably installed some updates. Out of sudden the 
commands "python manage.py ..." stopped working (to be precise I was trying 
to use python manage.py runserver command), and I was getting ImportError 
(a long stack trace with info Import by filename is not supported). 
So I moved my project to trash and tried to start a new project but was not 
able to run django-admin startproject :(
The present stacktrace (still with ImportError) refers to __init__.py in 
importlib directory (C:/Python27/Lib/importlib/__init__.py) and it seems to 
hate  __import__(name) part of import_module function. 
Could anyone help me on that as I cannot see what has changed since when 
everything worked smoothly :(
Here's the __init__.py code:

"""Backport of importlib.import_module from 3.x."""
# While not critical (and in no way guaranteed!), it would be nice to keep 
this
# code compatible with Python 2.3.
import sys

def _resolve_name(name, package, level):
    """Return the absolute name of the module to be imported."""
    if not hasattr(package, 'rindex'):
        raise ValueError("'package' not set to a string")
    dot = len(package)
    for x in xrange(level, 1, -1):
        try:
            dot = package.rindex('.', 0, dot)
        except ValueError:
            raise ValueError("attempted relative import beyond top-level "
                              "package")
    return "%s.%s" % (package[:dot], name)


def import_module(name, package=None):
    """Import a module.

    The 'package' argument is required when performing a relative import. It
    specifies the package to use as the anchor point from which to resolve 
the
    relative import to an absolute import.

    """
    if name.startswith('.'):
        if not package:
            raise TypeError("relative imports require the 'package' 
argument")
        level = 0
        for character in name:
            if character != '.':
                break
            level += 1
        name = _resolve_name(name[level:], package, level)
    __import__(name)
    return sys.modules[name]

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/9c734b44-61e6-4400-9b0e-da07806621db%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to