在Windows 7上导出DJANGO_SETTINGS_MODULE

0 投票
2 回答
809 浏览
提问于 2025-04-18 11:12

我正在尝试运行一个依赖于 Django 项目导入的 pyunit 单元测试。

因为 DJANGO_SETTINGS_MODULE 没有设置,所以我需要先导出这个变量,于是我运行了:

set DJANGO_SETTINGS_MODULE=C:/bobbapython/boon/cms.settings

这个路径指向项目根目录,也就是 .settings 文件夹所在的位置。

我还尝试过:

set DJANGO_SETTINGS_MODULE=C:/bobbapython/boon/cms/.settings

我也试过用 \ 代替 /,但都没有成功。

当我通过命令行运行这个脚本时,出现了这个错误信息:

Traceback (most recent call last):
  File "manager/tests/test_user_api/generate_testdata.py", line 12, in <module>
    from django import db
  File "C:\Python27\lib\site-packages\django\db\__init__.py", line 11, in <module>
    if DEFAULT_DB_ALIAS not in settings.DATABASES:
  File "C:\Python27\lib\site-packages\django\utils\functional.py", line 184, in inner
    self._setup()
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 95, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'C:/bobbapython/boon/cms.settings' (Is it on sys.path?): Import by filename is not supported.

有没有什么建议,告诉我可能哪里做错了,以及怎么解决这个问题?

2 个回答

0

DJANGO_SETTINGS_MODULE 不是一个文件路径,而是一个 Python 模块的引用。

'C:/bobbapython/boon' 这个路径应该在你的 PYTHONPATH 里,然后 DJANGO_SETTINGS_MODULE 就应该写成 'cms.settings'。

0

问题的解决方法是把包含settings.py文件的文件夹添加到Python的路径中,然后把设置模块改成“settings”。我使用了以下代码:

path = 'C:\\bobbapython\\boon\\cms\\src\\boon_cms'
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

一旦我这样做了,文件就能完美运行了。

撰写回答