【问题标题】:Django settings.py Error: Import by filename is not supportedDjango settings.py 错误:不支持按文件名导入
【发布时间】:2012-02-02 00:14:46
【问题描述】:

我在虚拟环境中运行 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 应用程序:]),所以只是一个仅供参考,它在我的 settings.py 文件中设置如下:

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

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

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

【问题讨论】:

  • DJANGO_SETTINGS_MODULE 应该在运行您的应用程序之前设置,而不是在settings.py 中。
  • 我也尝试过导出 DJANGO_SETTINGS... 但收到同样的错误

标签: python django


【解决方案1】:

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

我遇到了和我实际做的一样的错误

“音乐/网址”

但应该是的

“music.urls”

【讨论】:

    【解决方案2】:

    在原settings.py的最后:

    try:
        from settings_dev import *
    except ImportError:
        pass
    

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2016-04-01
        • 2018-02-10
        • 2019-01-29
        • 2018-02-18
        • 1970-01-01
        • 2014-11-17
        • 2018-06-14
        • 2016-08-17
        • 2012-12-19
        相关资源
        最近更新 更多