AttributeError: object 'module' does not have 'wraps' attribute

advertisements

I am trying to get Django running on a shared hosting account for which I have ssh access, but I have been having issues getting it working. When I first tried running django-admin.py, I received an error about the module 'functools' being missing. I had the hosting company install the functools package, but now I get the following traceback when I try to run django-admin.py.

Traceback (most recent call last):
  File "manage.py", line 2, in <module>
    from django.core.management import execute_manager
  File "/usr/local/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/core/management/__init__.py", line 3, in <module>
    from optparse import OptionParser, NO_DEFAULT
  File "/usr/local/lib/python2.6/optparse.py", line 90, in <module>
    from gettext import gettext
  File "/usr/local/lib/python2.6/gettext.py", line 49, in <module>
    import locale, copy, os, re, struct, sys
  File "/usr/local/lib/python2.6/locale.py", line 98, in <module>
    @functools.wraps(_localeconv)
AttributeError: 'module' object has no attribute 'wraps'

I opened a support ticket and was told by the company that they reinstalled Python 2.6, but that didn't change anything. I also tried with 2.4, which is also installed on the machine, but that resulted in the earlier ImportError: No module named functools error.

Does anybody have any ideas?


A likely cause is something shadowing the stdlib functools module. Do you have a functools.py alongside the main script (manage.py)? See what import functools; print functools.__file__ prints, inside manage.py (before any of the other imports.) If it doesn't print /usr/local/lib/python2.6/functools.py, there's probably a file shadowing the standard library module. If it does print that, something is wrong with that file, reinstalls notwithstanding.