Code

Opened 7 years ago

Closed 7 years ago

#5201 closed (invalid)

Settings won't load when inside a directory named settings

Reported by: Deryck Hodge <deryck@…> Owned by: adrian
Component: Core (Management commands) Version: master
Severity: Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: UI/UX:

Description

I think something has happened since the refatoring of management so that you can no longer have a directory named settings which contains your settings files. For example, I have a directory on my PYTHONPATH which has all my apps I'm working on and then a settings directory which has devel.py and apache.py inside. Something like:

devel_dir
  -- app1
  -- app2
  -- settings
         -- devel.py
         -- apache.py

Normally, I run the with DJANGO_SETTINGS_MODULE=settings.devel, but I noticed today that this no longer works.

See this Traceback that might help explain and also shows this worked with a SVN rev prior to r5898

naminanu:~ hodgedg$ export PYTHONPATH=~/projects/django_trunk_r5897:~/projects/paperlate
naminanu:~ hodgedg$ export DJANGO_SETTINGS_MODULE=settings.devel
naminanu:~ hodgedg$ django-admin.py validate 
0 errors found.
naminanu:~ hodgedg$ export PYTHONPATH=~/projects/django/SVN/django/trunk:~/projects/paperlate
naminanu:~ hodgedg$ export DJANGO_SETTINGS_MODULE=settings.devel
naminanu:~ hodgedg$ django-admin.py validate 
Traceback (most recent call last):
  File "/Users/hodgedg/projects/django/SVN/django/trunk/django/bin/django-admin.py", line 5, in <module>
    management.execute_from_command_line()
  File "/Users/hodgedg/projects/django/SVN/django/trunk/django/core/management/__init__.py", line 171, in execute_from_command_line
    utility.execute(argv)
  File "/Users/hodgedg/projects/django/SVN/django/trunk/django/core/management/__init__.py", line 124, in execute
    command.execute(*args[1:], **options.__dict__)
  File "/Users/hodgedg/projects/django/SVN/django/trunk/django/core/management/base.py", line 28, in execute
    translation.activate('en-us')
  File "/Users/hodgedg/projects/django/SVN/django/trunk/django/utils/translation/__init__.py", line 76, in activate
    return real_activate(language)
  File "/Users/hodgedg/projects/django/SVN/django/trunk/django/utils/translation/__init__.py", line 31, in delayed_loader
    if settings.USE_I18N:
  File "/Users/hodgedg/projects/django/SVN/django/trunk/django/conf/__init__.py", line 28, in __getattr__
    self._import_settings()
  File "/Users/hodgedg/projects/django/SVN/django/trunk/django/conf/__init__.py", line 57, in _import_settings
    self._target = Settings(settings_module)
  File "/Users/hodgedg/projects/django/SVN/django/trunk/django/conf/__init__.py", line 85, in __init__
    raise EnvironmentError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
EnvironmentError: Could not import settings 'settings.devel' (Is it on sys.path? Does it have syntax errors?): No module named devel
naminanu:~ hodgedg$ cp -r ~/projects/paperlate/settings/ ~/projects/paperlate/testing/
naminanu:~ hodgedg$ export DJANGO_SETTINGS_MODULE=testing.devel
naminanu:~ hodgedg$ django-admin.py validate 
naminanu:~ hodgedg$

Notice that renaming the directory to something other than "settings" fixes the problem. Also, this Tracebook occurred in Trunk against r5919.

Attachments (0)

Change History (1)

comment:1 Changed 7 years ago by Deryck Hodge <deryck@…>

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Resolution set to invalid
  • Status changed from new to closed

Okay, I feel stupid. I had added a settings.py inside django for testing which feel on my PYTHONPATH.

Please forgive the ticket noise.

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.