Reputation: 1357
I'm running a twitter application on pythonanywhere, the app works perfectly on localhost development server, but when I run it on pythonanywhere I get this error:
2013-01-30 20:04:12,843 :Traceback (most recent call last):
2013-01-30 20:04:12,843 : File "/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 272, in __call__
2013-01-30 20:04:12,843 : response = self.get_response(request)
2013-01-30 20:04:12,844 : File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 169, in get_response
2013-01-30 20:04:12,844 : response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
2013-01-30 20:04:12,844 : File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 203, in handle_uncaught_exception
2013-01-30 20:04:12,844 : return debug.technical_500_response(request, *exc_info)
2013-01-30 20:04:12,844 : File "/usr/local/lib/python2.7/site-packages/django/views/debug.py", line 59, in technical_500_response
2013-01-30 20:04:12,845 : html = reporter.get_traceback_html()
2013-01-30 20:04:12,845 : File "/usr/local/lib/python2.7/site-packages/django/views/debug.py", line 151, in get_traceback_html
2013-01-30 20:04:12,845 : return t.render(c)
2013-01-30 20:04:12,845 : File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 123, in render
2013-01-30 20:04:12,845 : return self._render(context)
2013-01-30 20:04:12,845 : File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 117, in _render
2013-01-30 20:04:12,845 : return self.nodelist.render(context)
2013-01-30 20:04:12,845 : File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render
2013-01-30 20:04:12,846 : bits.append(self.render_node(node, context))
2013-01-30 20:04:12,846 : File "/usr/local/lib/python2.7/site-packages/django/template/debug.py", line 73, in render_node
2013-01-30 20:04:12,846 : result = node.render(context)
2013-01-30 20:04:12,846 : File "/usr/local/lib/python2.7/site-packages/django/template/debug.py", line 90, in render
2013-01-30 20:04:12,846 : output = self.filter_expression.resolve(context)
2013-01-30 20:04:12,846 : File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 536, in resolve
2013-01-30 20:04:12,847 : new_obj = func(obj, *arg_vals)
2013-01-30 20:04:12,847 : File "/usr/local/lib/python2.7/site-packages/django/template/defaultfilters.py", line 695, in date
2013-01-30 20:04:12,847 : return format(value, arg)
2013-01-30 20:04:12,847 : File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 285, in format
2013-01-30 20:04:12,847 : return df.format(format_string)
2013-01-30 20:04:12,847 : File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 30, in format
2013-01-30 20:04:12,847 : pieces.append(force_unicode(getattr(self, piece)()))
2013-01-30 20:04:12,848 : File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 191, in r
2013-01-30 20:04:12,848 : return self.format('D, j M Y H:i:s O')
2013-01-30 20:04:12,848 : File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 30, in format
2013-01-30 20:04:12,848 : pieces.append(force_unicode(getattr(self, piece)()))
2013-01-30 20:04:12,848 : File "/usr/local/lib/python2.7/site-packages/django/utils/encoding.py", line 71, in force_unicode
2013-01-30 20:04:12,848 : s = unicode(s)
2013-01-30 20:04:12,848 : File "/usr/local/lib/python2.7/site-packages/django/utils/functional.py", line 206, in __unicode_cast
2013-01-30 20:04:12,848 : return self.__func(*self.__args, **self.__kw)
2013-01-30 20:04:12,849 : File "/usr/local/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 81, in ugettext
2013-01-30 20:04:12,849 : return _trans.ugettext(message)
2013-01-30 20:04:12,849 : File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 286, in ugettext
2013-01-30 20:04:12,849 : return do_translate(message, 'ugettext')
2013-01-30 20:04:12,849 : File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 276, in do_translate
2013-01-30 20:04:12,849 : _default = translation(settings.LANGUAGE_CODE)
2013-01-30 20:04:12,849 : File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 185, in translation
2013-01-30 20:04:12,850 : default_translation = _fetch(settings.LANGUAGE_CODE)
2013-01-30 20:04:12,850 : File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 162, in _fetch
2013-01-30 20:04:12,850 : app = import_module(appname)
2013-01-30 20:04:12,850 : File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
2013-01-30 20:04:12,850 : __import__(name)
2013-01-30 20:04:12,850 :django.template.base.TemplateSyntaxError: Caught ImportError while rendering: No module named twitterApp
What could be causing this error? where should I look?
Upvotes: 3
Views: 3669
Reputation: 423
Had the exact same problem with my app... the issue turned out to be file permissions. If the app directory doesn't have execute permissions, it failed to be imported.
Upvotes: 1
Reputation: 325
if may caused by wsgi.py configuration issues in pythonanywhere,in local env,django handle python path and static files well. According to this part in pythonanywhere deploy doc:
path = '/home/my_username/projects'
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'my_project.settings'
from my_project.myapp.models import Kitchen, Sink
please note:my_project prefix is needed.
2.static files should handle well
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
check this two points according to document should fix that
Upvotes: 3