【问题标题】:PythonAnywhere->ImportError raised loading nrpccms.newsroom.templatetags.blog_extras: No module named settingsPythonAnywhere->ImportError 引发加载 nrpccms.newsroom.templatetags.blog_extras:没有名为设置的模块
【发布时间】:2013-10-19 02:04:14
【问题描述】:

我正在尝试在PythonAnywhere(或在任何地方)部署我的第一个应用程序。我目前得到:

TemplateSyntaxError: 'blog_extras' is not a valid tag library: ImportError raised loading nrpccms.newsroom.templatetags.blog_extras: No module named settings

full error log
see error live

应用新闻编辑室是 INSTALLED_APPS 中的第一个:

#! python
# ...
INSTALLED_APPS = (
    "nrpccms.newsroom",
    "django.contrib.admin",
# ...

blog_extras.py 位于 MY_PROJECT/MY_APP/templatetags,__init__.py 位于 MY_PROJECT/mY_APP。

你能指出我的错误吗?

【问题讨论】:

  • 可以发一下blog_extras.py吗?

标签: python django mezzanine pythonanywhere


【解决方案1】:

blog_extras.py 在错误的文件夹中

my_project/    
    my_app/
        __init__.py
        models.py
        views.py
        templatetags/
            __init__.py
            blog_extras.py

blog_extras.py 应该存在于 templatetags 目录中,与 models.py、views.py 等处于同一级别。如果不存在,请创建它 - 不要忘记 init.py 文件以确保该目录被视为 Python 包。

Official documentation on Custom Template Tags

【讨论】:

    【解决方案2】:

    已修复:我必须在我的 wsgi 脚本中将我的项目文件夹添加到 sys.path。这是我的新 wsgi 脚本:

    activate_this = '/home/nimbiotics/.virtualenvs/nrpccms/bin/activate_this.py' execfile(activate_this, dict(文件=activate_this))

    导入操作系统导入系统

    path = '/home/nimbiotics/projects' 如果路径不在 sys.path 中: sys.path.append(路径)

    ################################################# ### nrpccms_path = '/home/nimbiotics/projects/nrpccms' 如果 nrpccms_path 不是

    在 sys.path 中: sys.path.append(nrpccms_path)

    #

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

    导入 django.core.handlers.wsgi 应用程序 = django.core.handlers.wsgi.WSGIHandler()

    【讨论】:

    • 这很奇怪,通常如果你使用django-admin.py创建项目,它创建的wsgi文件应该包含你的项目路径。
    猜你喜欢
    • 2016-01-02
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 2011-06-23
    相关资源
    最近更新 更多