【问题标题】:Python Django "ImportError: No module named hashcompat"Python Django“ImportError:没有名为 hashcompat 的模块”
【发布时间】:2013-05-04 01:13:22
【问题描述】:

我是通过阅读《beginning django e-commerce》学习python+django,安装django-db-log后,在运行$python manage.py runserver时,出现问题。

Unhandled exception in thread started by <function wrapper at 0x02C28DB0>

 Traceback (most recent call last): 
  File "D:\Python27\lib\site-packages\django\utils\autoreload.py", line 93, in wrapper fn(*args, **kwargs) 
  File "D:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 92, in inner_run self.validate(display_num_errors=True) 
  File "D:\Python27\lib\site-packages\django\core\management\base.py", line 308, in validate num_errors = get_validation_errors(s, app) 
  File "D:\Python27\lib\site-packages\django\core\management\validation.py", line 34, in get_validation_errors for (app_name, error) in get_app_errors().items(): 
  File "D:\Python27\lib\site-packages\django\db\models\loading.py", line 166, in get_app_errors self._populate() File "D:\Python27\lib\site-packages\django\db\models\loading.py", line 75, in _populate self.load_app(app_name) 
  File "D:\Python27\lib\site-packages\django\db\models\loading.py", line 96, in load_app models = import_module('.models', app_name)
  File "D:\Python27\lib\site-packages\django\utils\importlib.py", line 35, in import_module __import__(name) 
  File "build\bdist.win32\egg\djangodblog\models.py", line 9, in <module> 
  File "build\bdist.win32\egg\djangodblog\manager.py", line 23, in <module> 
  File "build\bdist.win32\egg\djangodblog\helpers.py", line 5, in <module>

ImportError: No module named hashcompat

【问题讨论】:

  • 听起来你已经在前一个之上安装了新的 django。尝试卸载/安装 django。

标签: python django importerror


【解决方案1】:

如果你还在关注,那么本书中使用的django版本是1.1,如果你使用的是更高版本的django,那么请尝试从@987654325的应用列表中删除djangodblog @ 文件。它应该可以工作。

【讨论】:

    【解决方案2】:

    我使用hashlib 解决了这个问题。我刚刚补充了:

    try:
        from hashlib import sha1 as sha_constructor
    except ImportError:
        from django.utils.hashcompat import sha_constructor
    

    【讨论】:

      【解决方案3】:

      hashcompat is already deprecated 在 django 1.6 中,最好改用 hashlib

      【讨论】:

        【解决方案4】:

        您指的是过时的手册。模块 hashcompat 在 Django 1.6 中被删除,您可以阅读 here

        要么安装较旧的 Django 版本(1.5 或以前的版本),要么获取更新的教科书。您还可以按照删除通知中的建议使用 Python 内置函数手动修复代码,但对于初学者来说可能有点麻烦 :)

        【讨论】:

        • 非常感谢!我试试你的解决方案,问题解决了。再次感谢。
        猜你喜欢
        • 2018-01-16
        • 2017-07-01
        • 2012-10-21
        • 2013-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-28
        • 2020-09-07
        相关资源
        最近更新 更多