django simple captcha no such file / usr / share / dict / words

时间:2014-07-12 20:43:06

标签: django virtualenv captcha gunicorn

我正在使用Ubuntu Trusty在虚拟机上部署我的Django项目。 要做到这一点,我使用的是Gunicorn(带有Supervisor)和Nginx。

以下是我所遵循的教程的链接: http://michal.karzynski.pl/blog/2013/06/09/django-nginx-gunicorn-virtualenv-supervisor/

当我启动Nginx和Gunicorn时,该网站是可访问的,但当我尝试访问使用django-simple-captcha等应用程序的页面时,我得到了一个" 服务器错误(500) &#34 ;.
当我使用 virtualenv 时,所有这些使用 pip 安装的应用程序(rosetta,easymode,simple-captcha ...)都存储在 myvirtualenv / myproject / lib /中python2.7 /站点包

经过一些研究,我修改了我的 wsgi.py 文件,将 site-packages 目录添加到路径中,如下所示:

import os, sys, site

# Tell wsgi to add the Python site-packages to its path
site.addsitedir(os.path('/webapps/project/lib/python2.7/site-packages'))

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")

#activate_this = os.path('/webapps/project/bin/activate_this.py')
#execfile(activate_this, dict(__file__=activate_this))
#sys.path.append(os.path('/webapps/project/'))

from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application()

...但它仍然无法正常工作,知道如果我取消注释上面三行中的一行,我会在重新启动它时收到gunicorn的错误消息:

project: ERROR (abnormal termination)

你觉得这里的问题是我没有激活virtualenv吗? 我应该找到另一种方法来激活它吗? 我怎样才能获得更多关于为什么gunicorn赢得execfilesys.path.append行开头的信息呢? 你有什么建议吗?

如果它缺少信息,请告诉我,例如 gunicorn_start 脚本(即使它与我们在许多教程中找到的相同):)

更新:

我没有引起足够的重视, gunicorn_start 脚本正在激活virtualenv,因此我不需要在 wsgi.py 文件。 但问题仍然存在:我在wsgi.py文件中打印 sys.path ,当我使用python manage.py runserver my.server.address:8000命令时,我可以看到所有需要的目录都在:< / p>

['/webapps/project/project', '/webapps/project/lib/python2.7', '/webapps/project/lib/python2.7/plat-x86_64-linux-gnu', '/webapps/project/lib/python2.7/lib-tk', '/webapps/project/lib/python2.7/lib-old', '/webapps/project/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/webapps/project/local/lib/python2.7/site-packages', '/webapps/project/lib/python2.7/site-packages']

当我尝试加载使用位于Server Error (500)的{​​{1}}应用的网页时,我无法弄清楚为什么会收到django-simple-captcha ...

1 个答案:

答案 0 :(得分:0)

经过一些测试后,我发现问题的根源只有django-simple-captcha。并且不要问我为什么我不想早点这样做,但是我打开了DEBUG,我收到了IO错误: 没有这样的文件/ usr / share / dict / words

确实我在使用

CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.word_challenge'

settings.py ...

两种解决方案: