python - Django 无法导入本地设置

标签 python django settings

编辑: 使用 Django 1.7 和 Python 3

在使用 manage.py 时,我似乎无法将 local_settings.py 导入到我的 settings.py 文件中。

如果我直接执行 settings.py 文件,我的 local_settings.py 文件导入正常,没有任何错误。

但是,当我运行 manage.py 时,它会提示找不到 local_settings.py 模块。 settings.py 和 local_settings.py 在同一个文件夹中...

有什么想法吗?

Traceback (most recent call last):
  File "/home/cg/webdev/riv_com/lib/python3.4/site-packages/django/conf/__init__.py", line 94, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib/python3.4/importlib/__init__.py", line 104, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2231, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2214, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2203, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1448, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "/home/cg/webdev/riv_com/riv_com/riv_com/settings.py", line 79, in <module>
    from local_settings import *
ImportError: No module named 'local_settings'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/cg/webdev/riv_com/lib/python3.4/site-packages/django/core/management/__init__.py", line 427, in execute_from_command_line
    utility.execute()
  File "/home/cg/webdev/riv_com/lib/python3.4/site-packages/django/core/management/__init__.py", line 386, in execute
    settings.INSTALLED_APPS
  File "/home/cg/webdev/riv_com/lib/python3.4/site-packages/django/conf/__init__.py", line 46, in __getattr__
    self._setup(name)
  File "/home/cg/webdev/riv_com/lib/python3.4/site-packages/django/conf/__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/cg/webdev/riv_com/lib/python3.4/site-packages/django/conf/__init__.py", line 98, in __init__
    % (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'riv_com.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named 'local_settings'

编辑:

这个错误好像只出现在Python3.4

我测试过:

Django 1.6 + Python3.4 = 错误
Django 1.7 + Python3.4 = 错误

Django 1.6 + Python2.7 = 还行

最佳答案

Python 3.4 不支持隐式相对导入:from local_settings import * 在 Python 3 中是绝对导入,只会搜索 local_settings 模块在您的 sys.path 中,但不在您的 settings.py 模块所在的同一目录中。您需要使用显式相对导入:from .local_settings import *;这也适用于 Python 2.7。

引用:PEP 328

关于python - Django 无法导入本地设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22904209/

相关文章:

python - 如何考虑标签将多行合并为一行

Python获取与os/proc/[pid]/匹配的TID

python - django.db.utils.InternalError : (1050, "Table ' django_content_type' 已经存在")

cron - 如何设置crontab在特定时间执行

android - 如何使用 'adb shell settings' 使设置持久化

python - 从 tkinter 中的另一个类更新列表框

python - 正则表达式删除第一组零

django - 如何在UpdateView django中获取request.user

python - 如何列出 Django 中所有与表单相关的错误?

rest - Elasticsearch:如何删除(集群)设置