AttributeError:'module'对象没有属性'wraps'

时间:2011-08-31 23:52:15

标签: python django

我正在尝试让Django在我有ssh访问权限的共享主机帐户上运行,但我一直遇到问题让它运行起来。当我第一次尝试运行django-admin.py时,我收到有关模块'functools'丢失的错误。我让托管公司安装了functools软件包,但是现在当我尝试运行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'

我打开了一张支持票,公司告诉他们重新安装了Python 2.6,但这并没有改变任何东西。我也试过2.4,它也安装在机器上,但是导致了早期的ImportError: No module named functools错误。

有人有什么想法吗?

2 个答案:

答案 0 :(得分:2)

可能的原因是stdlib functools模块的影响。主脚本(functools.py)旁边有manage.py吗?查看import functools; print functools.__file__打印内部manage.py之前任何其他导入。)如果它不打印/usr/local/lib/python2.6/functools.py,可能会有一个文件影响标准图书馆模块。如果 打印出来,那该文件有问题,尽管重新安装。

答案 1 :(得分:0)

这个解决方案对我有用。

mv /usr/lib/python2.7/site-packages/pip* ./
yum reinstall python-pip
sudo pip install django 

尝试其他解决方案。

风险太大,这可能不是最安全的解决方案。但它对我来说很好。

  1. 卸载点。

    pip uninstall pip
    

    如果您通过 get-pip.py 安装。

     python -m pip uninstall pip setuptools
    
  2. 导航到路径。

      /usr/lib/python2.7/site-packages/
    

    找出两个pip目录 pip pip-6.0.8.dist-info

  3. 同时删除 pip-6.0.8.dist-info

  4. 然后再试一次。

     yum install python-pip
    

    python get-pip.py