5

我是通过阅读《初学django电子商务》学习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
4

4 回答 4

7

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

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

于 2013-05-09T14:16:25.933 回答
6

我使用hashlib. 我刚刚补充说:

try:
    from hashlib import sha1 as sha_constructor
except ImportError:
    from django.utils.hashcompat import sha_constructor
于 2016-02-15T20:59:06.443 回答
0

hashcompat在 django 1.6 中已经被弃用,最好使用 hashlib 代替

于 2014-03-02T21:38:30.080 回答
-1

如果您仍在关注,django则书中使用的版本是1.1,如果您使用的是更高版本django,请尝试djangodblog从文件中的应用列表中删除setting.py。它应该工作。

于 2017-10-31T08:24:42.883 回答