0

我正在将 pycharm 与 django 一起使用。当我执行 runserver 命令时,我的项目启动并且一切正常。

如果我使用 pycharm 运行命令 - 顶部的绿色箭头 - 那么我会遇到问题。

问题是:

runnerw.exe C:\development\python\python.exe manage.py runserver 127.0.0.1:8000

回溯(最近一次通话最后):

导入设置中的文件“manage.py”,第 11 行

文件“C:\development\PycharmProjects\dumpstown\settings.py”,第 185 行,在 add_to_builtins('gravatar.templatetags.gravatar')

文件“C:\development\python\lib\site-packages\django\template\base.py”,第 1017 行,在 add_to_builtins builtins.append(import_library(module))

文件“C:\development\python\lib\site-packages\django\template\base.py”,第 963 行,在 import_library

raise InvalidTemplateLibrary("ImportError raised loading %s: %s" % (taglib_module, e))

django.template.base.InvalidTemplateLibrary:ImportError 引发加载

gravatar.templatetags.gravatar:无法导入设置,因为环境变量 DJANGO_SETTINGS_MODULE 未定义。

进程以退出代码 1 结束

并且源于我在这里使用 add_to_builtins :(这是在 settings.py 文件中)

#gravatar stuff here.
add_to_builtins('gravatar.templatetags.gravatar')

我知道这是问题所在,因为如果我在 settings.py 文件中删除这一行?一切正常。

有没有办法为pycharm解决这个问题?

4

2 回答 2

2

您需要在 Settings | 中设置您的 Django 设置模块。Django 支持 | 设置

http://www.jetbrains.com/pycharm/webhelp/django-support.html

更新

django-gravatar 的问题在于它的 templatetags import django.contrib.auth.models.User 依赖于设置模块,而设置模块由 DJANGO_SETTINGS_MODULE 环境变量加载到 Django 中,该环境变量由 manage.py 中的 execute_manager 函数调用在内部设置,这是在导入设置后执行的。因此,当您在 settings.py 中使用未记录的 add_to_builtins 功能时,您没有设置 DJANGO_SETTINGS_MODULE 环境变量。所以这不是 PyCharm 的问题,而是未设置环境变量和使用未记录的 Django 功能 add_to_builtin 的问题。

当我从 Unix 控制台运行相同的项目时,我得到了同样的错误。

如果它从控制台工作,可能你在你的环境中设置了 DJANGO_SETTINGS_MODULE。因此,要使其在 PyCharm 中工作,您需要在 Django 运行配置中设置变量。您可以在此处阅读相关内容(请参阅环境变量部分)。

于 2012-07-02T13:33:16.660 回答
0

正如我在这里回答的那样:https ://stackoverflow.com/a/11299516/1061426

pycharm 已损坏,不适用于 add_to_builtins。两个明显的解决方案是:

  1. 不要使用 pycharm,使用一些免费的 django 插件进行 eclipse,或者老式的文本编辑?

  2. 使用 pycharm,只是不要使用 add_to_builtins。这是我走的路线 - 修复所有模板以导入模块很烦人,但在我的情况下,它比移植到新 IDE 的麻烦要简单得多。

于 2012-07-02T19:00:30.050 回答