Django settings.py错误:不支持按文件名导入

时间:2012-01-04 01:40:25

标签: python django

我在虚拟环境中运行Django(使用virtualenv),我正在尝试添加自定义开发环境设置文件,以便在我开发时简化应用程序配置。我的计划是用两行代码来做这件事

if os.environ.get('DEVELOPMENT', None):
    from login import settings_dev

我还尝试了import settings_deffrom login.settings_dev import *。我的settings_dev.py文件与settings.py文件位于同一目录中,我的应用程序位于名为login的文件夹中。当我运行python login/manage.py syncdb时,我收到此错误:

Error: Import by filename is not supported.

我的搜索不断提出DJANGO_SETTINGS_MODULE(虽然我不确定它是如何影响所有这些 - 第一个Django应用程序:]),所以只是一个FYI它在我的settings.py文件中设置如下:

os.environ['DJANGO_SETTINGS_MODULE'] = 'login.settings'

我也尝试在我的终端中导出它,但是我得到了同样的错误。

有谁知道如何解决这个/我在这里做错了什么?

3 个答案:

答案 0 :(得分:6)

确保在传递文件的相对地址时使用"。"而不是" /"。

我遇到了与实际相同的错误

<强>&#34;音乐/网址&#34;

但它应该是

&#34; music.urls&#34;

答案 1 :(得分:1)

在最初的settings.py中,最后:

try:
    from settings_dev import *
except ImportError:
    pass

在与settings_dev.py相同的目录中创建settings.py,并在其中,在最顶部添加以下两行:

import sys
globals().update(vars(sys.modules['settings']))

现在在此文件中添加您想要的任何开发设置。

答案 2 :(得分:1)

我在runserver命令执行中遇到了类似的错误,最后我发现由于安装了django版本的python版本不兼容而引发此错误。我的系统上有两个版本的python,我运行了错误的django服务器。希望它对某人有所帮助。