Django依赖:hmac?

2 投票
1 回答
904 浏览
提问于 2025-04-18 10:34

我今天做了很多更改,包括环境变量、Pyscripter,以及把Python从2.7.5更新到2.7.7。现在其中一个更改导致我在尝试运行我的Django网站时出现了错误。

(myEnv)PS C:\Users\Josh\.virtualenvs\myEnv\tumblr> python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python27\Lib\site-packages\django\core\management\__init__.py", line 399, in execute_from_command_line
    utility.execute()
  File "C:\Python27\Lib\site-packages\django\core\management\__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Python27\Lib\site-packages\django\core\management\__init__.py", line 261, in fetch_command
    commands = get_commands()
  File "C:\Python27\Lib\site-packages\django\core\management\__init__.py", line 107, in get_commands
    apps = settings.INSTALLED_APPS
  File "C:\Python27\Lib\site-packages\django\conf\__init__.py", line 54, in __getattr__
    self._setup(name)
  File "C:\Python27\Lib\site-packages\django\conf\__init__.py", line 50, in _setup
    self._configure_logging()
  File "C:\Python27\Lib\site-packages\django\conf\__init__.py", line 72, in _configure_logging
    from django.utils.log import DEFAULT_LOGGING
  File "C:\Python27\Lib\site-packages\django\utils\log.py", line 7, in <module>
    from django.views.debug import ExceptionReporter, get_exception_reporter_filter
  File "C:\Python27\Lib\site-packages\django\views\debug.py", line 10, in <module>
    from django.http import (HttpResponse, HttpResponseServerError,
  File "C:\Python27\Lib\site-packages\django\http\__init__.py", line 2, in <module>
    from django.http.request import (HttpRequest, QueryDict, UnreadablePostError,
  File "C:\Python27\Lib\site-packages\django\http\request.py", line 11, in <module>
    from django.core import signing
  File "C:\Python27\Lib\site-packages\django\core\signing.py", line 45, in <module>
    from django.utils.crypto import constant_time_compare, salted_hmac
  File "C:\Python27\Lib\site-packages\django\utils\crypto.py", line 6, in <module>
    import hmac
  File "C:\Python27\Lib\hmac.py", line 8, in <module>
    from operator import _compare_digest as compare_digest
ImportError: cannot import name _compare_digest

我试着更新Django,但我已经是最新版本了。接下来我打算卸载Django再重新安装一次,但我担心这样会搞乱我的项目。有什么建议吗?非常感谢!

1 个回答

4

我在网上找到的一个建议是,如果你在升级到Python 2.7.7后遇到这个错误,可以尝试重置你的虚拟环境。你可以运行

# virtualenv /path/to/your/virtualenv/

这样做应该能把它重置为最新的Python版本。

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749491

对我来说,解决办法是把Python降级到2.7.6,现在我的django 1.6.5应用又能正常工作了。

撰写回答