让打包为Python egg的Django应用与Django管理文档兼容

0 投票
1 回答
514 浏览
提问于 2025-04-16 08:54

我接手了一个Django(1.1)项目,这个项目里安装了好几个Django应用,都是以“egg”的形式放在/usr/lib/python2.6/site-packages/目录下。这在其他地方都能正常工作,但在Django的管理文档中就出问题了。想查看标签或过滤器的文档时,出现了:

File "/usr/lib/python2.6/site-packages/Django-1.1.1-py2.6.egg/django/contrib/admindocs/views.py" in load_all_installed_template_libraries
313.         libraries = [os.path.splitext(p)[0] for p in os.listdir(e) if p.endswith('.py') and p[0].isalpha()]

Exception Type: OSError at /admin/doc/tags/
Exception Value: (20, 'Not a directory')

这里的问题是

e = '/usr/lib/python2.6/site-packages/django_tinymce-1.5-py2.6.egg/tinymce/templatetags'

简单来说,Django的管理文档无法自动加载这些“egg”,因为它们是压缩文件,而不是文件夹。

我查了一下,觉得我可以尝试以下几种方法:

  1. 把这些“egg”解压到原来的位置
  2. 调整一下http://docs.djangoproject.com/en/dev/howto/deployment/modpython/#using-eggs-with-mod-python的内容(我现在用的是mod_wsgi)
  3. 修改Django管理文档的代码,让它能正确处理“egg”文件

这些方法可能都不算太难,但在生产服务器上用起来都不是很理想。有没有人遇到过这个问题?你们有什么建议吗?

1 个回答

0

你有没有指定一个可以被运行你代码的Apache用户写入的目录,作为蛋缓存目录呢?

http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Access_Rights_Of_Apache_User

撰写回答