【问题标题】:Installing South in Django causes 500 error在 Django 中安装 South 导致 500 错误
【发布时间】:2012-12-09 19:41:26
【问题描述】:

我正在尝试在 Django 中安装 South。我正在做相对简单的步骤。

我在使用 Virtualenv 的虚拟环境中运行 Dreamhost(它使用Passenger WSGI)。虚拟环境使用 Python 2.7.3 和 Django 1.4.2。

首先我做了,在包含 manage.py 文件的同一目录中,easy_install South。 (v 0.7.6-py2.7)

然后我进入我唯一的settings.py,使INSTALLED_APPS看起来像这样:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'blog',
    'South', # i tried lowercase 's' here too, no difference
)

然后我运行 pkill pyton 进行更改。我刷新了我的网站,并收到 500 Internal Server Error。如果我从 INSTALLED_APPS 中删除 'South' 并 pkill python 并再次刷新,错误就会消失。

我可以使用 South 工具来执行迁移和所有这些工作。一切都在终端中运行。就在我在浏览器中加载网站时,我收到 500 错误。从已安装的应用程序中删除南可以消除错误。

我做错了什么?

【问题讨论】:

  • 如果没有任何参考资料,您希望如何调试?获取您的服务器日志。
  • @YujiTomita 我的 error.logs 文件总是对 500 个错误显示相同的默认错误:“脚本头过早结束”
  • @YujiTomita 如何获得更多有用的日志?
  • 哎呀,要找出任何问题,这将是一个巨大的问题。我以前在极少数情况下遇到过这个问题......研究表明您的服务器设置有问题。抱歉,帮不上什么忙!

标签: python django django-south


【解决方案1】:

要调试它,首先在 Django 设置中打开 debug=True。

同样,南是具有较低 s 的“南”。

要检查它是否正常工作,您可以这样做

./manage.py shell
>> import south

这样你会得到一个错误的python shell,你会看到发生了什么。

【讨论】:

  • 打开 debug=True 会发生什么?
【解决方案2】:

所以我能够让它工作。这是一个奇怪的修复,但它有效。

我使用easy_install安装South,并将其放在以下目录:

/env/lib/python2.7/site-packages/South-0.7.6-py2.7.egg

如果你打开那个 egg 文件夹,你会看到另一个名为 south 的目录。

我所做的只是将south 文件夹上移一个目录,在site-packages 中。

就是这样。之后它才开始工作。

【讨论】:

  • 正确的做法是将South文件夹添加到搜索路径中,这样升级路径就复杂了。
猜你喜欢
  • 2013-04-14
  • 1970-01-01
  • 2016-12-18
  • 2016-03-15
  • 1970-01-01
  • 2011-05-12
  • 2013-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多