首页 文章

在virtualenv中全新安装后,Django admin / template /文件夹丢失了

提问于
浏览
6

尝试转到我的Django应用程序的管理面板时出现此错误:

TemplateDoesNotExist at /admin/index.html Exception Location:/home/mhb11/.virtualenvs/redditpk/local/lib/python2.7/site-packages/django/template/loader.py in find_template,139行Template-loader postmortem Django尝试按以下顺序加载这些模板:使用loader django.template.loaders.filesystem.Loader:使用loader django.template.loaders.app_directories.Loader:/home/mhb11/folder/project/templates/admin/index.html (文件不存在)/home/mhb11/.virtualenvs/projectenv/local/lib/python2.7/site-packages/bootstrap_pagination/templates/admin/index.html(文件不存在)

我有一个新的Django安装,没有移动任何文件,并且settings.py在 INSTALLED_APPS 中添加了 django.contrib.admin .

如果我去 /.virtualenvs/projectenv/local/lib/python2.7/site-packages/django/contrib/admin/ 我在那里找不到 /templates/ 文件夹(其中包含index.html和一堆其他文件) .

但是,安装在不同机器上的完全相同的项目确实有 /templates/ 文件夹 . 我在我的虚拟环境中卸载并重新安装了Django,但无济于事 .

settings.py 中已安装的应用程序具有以下内容:

INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', #'django.contrib.sessions', 'user_sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'django.contrib.comments', 'myapp', 'myproject', 'south', 'registration', 'bootstrap_pagination', 'djcelery', 'tweepy', 'django.contrib.humanize', 'analytical', 'mathfilters', #'request', #'debug_toolbar', #'analytical', #'django_whoshere', # Uncomment the next line to enable admin documentation: # 'django.contrib.admindocs', )

我得到的完整痕迹是:

Internal Server Error: /admin/ Traceback (most recent call last):   File "/home/mhb11/.virtualenvs/projectenv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 140, in get_response
    response = response.render()   File "/home/mhb11/.virtualenvs/projectenv/local/lib/python2.7/site-packages/django/template/response.py", line 105, in render
    self.content = self.rendered_content   File "/home/mhb11/.virtualenvs/projectenv/local/lib/python2.7/site-packages/django/template/response.py", line 80, in rendered_content
    template = self.resolve_template(self.template_name)   File "/home/mhb11/.virtualenvs/projectenv/local/lib/python2.7/site-packages/django/template/response.py", line 58, in resolve_template
    return loader.get_template(template)   File "/home/mhb11/.virtualenvs/projectenv/local/lib/python2.7/site-packages/django/template/loader.py", line 146, in get_template
    template, origin = find_template(template_name)   File "/home/mhb11/.virtualenvs/projectenv/local/lib/python2.7/site-packages/django/template/loader.py", line 139, in find_template
    raise TemplateDoesNotExist(name) TemplateDoesNotExist: admin/index.html

你见过类似的东西吗?我该如何解决这个问题?

2 回答

  • 8

    我以前见过这个 . /templates/ isn 't the only folder you'可能很遗憾 . 请注意,您在此处放置了一个django文件夹 /yourvirtualenv/django/ ,其中包含所有必需的文件夹 . 为您解决问题的方法是通过以下ubuntu命令将文件(无需覆盖)从 /yourvirtualenv/django/ 复制到 /yourvirtualenv/local/lib/python2.7/site-packages/django/rsync -a -v --ignore-existing src dst 其中 src/yourvirtualenv/django/ (即源), dst/yourvirtualenv/local/lib/python2.7/site-packages/django/ (即目标) . 接下来,再次启动Django管理员,它应该工作!

    我不确定为什么会发生这种情况 - 有趣的是,它与传统的Django安装行为不端 . 如果我获得有关它的新信息,我会更新这个答案 . 祝好运!

  • 7

    我不得不用 pip 安装一个旧的 django 1.3 ,我遇到了类似的问题 . django应用程序中缺少 templates 文件夹 .

    感谢@manu对@shahz回答的评论,我通过重新安装修复了问题

    pip install --no-binary django django==1.3.7
    

    需要最新版本的 pip . 它可能会更新

    pip install --upgrade pip
    

相关问题