AttributeError: '模块'对象没有'wraps'属性
我正在尝试在一个共享主机上运行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
这个解决方案对我有效。
mv /usr/lib/python2.7/site-packages/pip* ./
yum reinstall python-pip
sudo pip install django
或者试试另一种解决方案。
这个方法有点风险,可能不是最安全的解决方案,但对我来说效果不错。
先卸载 pip。
pip uninstall pip
如果你是通过 get-pip.py 安装的。
python -m pip uninstall pip setuptools
找到安装路径。
/usr/lib/python2.7/site-packages/
然后找到两个 pip 目录,分别是 pip 和 pip-6.0.8.dist-info。
删除这两个目录 pip 和 pip-6.0.8.dist-info。
然后再试一次。
yum install python-pip
或者
python get-pip.py
3
一个可能的原因是有东西遮住了标准库中的 functools
模块。你在主脚本(manage.py
)旁边有没有一个叫 functools.py
的文件?可以在 manage.py
里运行 import functools; print functools.__file__
这行代码,看看它打印出来的是什么(要在其他导入之前运行)。如果它没有打印出 /usr/local/lib/python2.6/functools.py
,那可能是有一个文件遮住了标准库的模块。如果它确实打印出了这个路径,那就说明那个文件有问题,重新安装也没用。