Django 1.5b1: executing django-admin.py causes "No module named settings" error

19,266

Solution 1

I had the same issue when starting a new project. I solved the problem by giving this command at the command prompt:

export DJANGO_SETTINGS_MODULE=

in this way I unset the variable that was pointing to a "settings" file (discovered using env | grep DJANGO_SETTINGS_MODULE) I set before starting using virtualenv

after unsetting the variable the django-admin.py script worked like a charm!

Solution 2

I've had the same issue as you, and I haven't come up with a good fix aside from prepending my project folder to the PYTHONPATH like this:

export PYTHONPATH="/absolute/path/to/django/project/folder:$PYTHONPATH"

where my <project> is located at /absolute/path/to/django/project/folder/<project>. I add that export command to the end of my env/bin/activate script so it happens every time I initialize the virtualenv.

The only difference between our two situations is that I use multiple settings files instead of a single settings.py module.

You can also call django-admin.py from the folder containing your Django project like so:

python ~/.virtualenvs/devel/bin/django-admin.py <command>

so that it recognizes your current working directory as part of the path.

Hope that makes sense. It's kind of clumsy to explain which makes it hard to search for an answer.

Solution 3

Maybe your problem is related to this: Wrong python path in script header

If you want to do anything except creating a new django project inside your venv, you should call python manage.py (of course, whereis python should return your venv executable)

Share:
19,266
sultan
Author by

sultan

Areas occupied: Full-stack developer, Consulting, Software development, Business solution developer, Project management Frameworks: Django, Android, Vue, React Programming languages: Python, Elixir, Go, JavaScript I'm in LinkedIn

Updated on June 15, 2022

Comments

  • sultan
    sultan about 2 years

    I've recently installed Django-1.5b1. My system configuration:

    • OSX 10.8
    • Python 2.7.1
    • Virtualenv 1.7.2

    When I call django-admin.py command I get the following error

    (devel)ninja Django-1.5b1: django-admin.py 
    Usage: django-admin.py subcommand [options] [args]
    
    Options:
      -v VERBOSITY, --verbosity=VERBOSITY
                            Verbosity level; 0=minimal output, 1=normal output,
                            2=verbose output, 3=very verbose output
      --settings=SETTINGS   The Python path to a settings module, e.g.
                            "myproject.settings.main". If this isn't provided, the
                            DJANGO_SETTINGS_MODULE environment variable will be
                            used.
      --pythonpath=PYTHONPATH
                            A directory to add to the Python path, e.g.
                            "/home/djangoprojects/myproject".
      --traceback           Print traceback on exception
      --version             show program's version number and exit
      -h, --help            show this help message and exit
    Traceback (most recent call last):
      File "/Users/sultan/.virtualenvs/devel/bin/django-admin.py", line 5, in <module>
        management.execute_from_command_line()
      File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 452, in execute_from_command_line
        utility.execute()
      File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 375, in execute
        sys.stdout.write(self.main_help_text() + '\n')
      File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 241, in main_help_text
        for name, app in six.iteritems(get_commands()):
      File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 108, in get_commands
        apps = settings.INSTALLED_APPS
      File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 52, in __getattr__
        self._setup(name)
      File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 47, in _setup
        self._wrapped = Settings(settings_module)
      File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 132, in __init__
        raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
    ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named settings
    

    Did anyone have the same errors? Can anyone advise or help with it?

    Thanks,

    Sultan