【问题标题】:Django migration with python3.6 ERROR:root:code for hash sha3_224 was not found使用 python3.6 错误的 Django 迁移:root:找不到哈希 sha3_224 的代码
【发布时间】:2017-10-08 12:23:56
【问题描述】:

您好,我阅读了Django tutorials,并且在迁移过程中遇到了与特定sha3_224 哈希函数相关的错误。如何解决这个问题呢?谢谢。

(venv) linuxoid@linuxoid-ThinkPad-L540:~/myprojects/myproject$ python manage.py makemigrations
ERROR:root:code for hash sha3_224 was not found.
Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 121, in __get_openssl_constructor
    f = getattr(_hashlib, 'openssl_' + name)
AttributeError: module '_hashlib' has no attribute 'openssl_sha3_224'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 243, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 128, in __get_openssl_constructor
    return __get_builtin_constructor(name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 113, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha3_224
ERROR:root:code for hash sha3_256 was not found.
Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 121, in __get_openssl_constructor
    f = getattr(_hashlib, 'openssl_' + name)
AttributeError: module '_hashlib' has no attribute 'openssl_sha3_256'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 243, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 128, in __get_openssl_constructor
    return __get_builtin_constructor(name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 113, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha3_256
ERROR:root:code for hash sha3_384 was not found.
Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 121, in __get_openssl_constructor
    f = getattr(_hashlib, 'openssl_' + name)
AttributeError: module '_hashlib' has no attribute 'openssl_sha3_384'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 243, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 128, in __get_openssl_constructor
    return __get_builtin_constructor(name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 113, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha3_384
ERROR:root:code for hash sha3_512 was not found.
Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 121, in __get_openssl_constructor
    f = getattr(_hashlib, 'openssl_' + name)
AttributeError: module '_hashlib' has no attribute 'openssl_sha3_512'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 243, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 128, in __get_openssl_constructor
    return __get_builtin_constructor(name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 113, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha3_512
ERROR:root:code for hash shake_128 was not found.
Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 121, in __get_openssl_constructor
    f = getattr(_hashlib, 'openssl_' + name)
AttributeError: module '_hashlib' has no attribute 'openssl_shake_128'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 243, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 128, in __get_openssl_constructor
    return __get_builtin_constructor(name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 113, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type shake_128
ERROR:root:code for hash shake_256 was not found.
Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 121, in __get_openssl_constructor
    f = getattr(_hashlib, 'openssl_' + name)
AttributeError: module '_hashlib' has no attribute 'openssl_shake_256'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 243, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 128, in __get_openssl_constructor
    return __get_builtin_constructor(name)
  File "/home/linuxoid/myprojects/venv/lib/python3.6/hashlib.py", line 113, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type shake_256
No changes detected

【问题讨论】:

  • 我在尝试使用 django 通道时大致得到了这个堆栈跟踪,降级或重新创建虚拟环境清除了这一点。有人可以谈谈 hashlib 实际上在哪里获得这种编码,以及 django 在哪里尝试使用它们?为什么降级或构建新的 venv 会有所帮助?

标签: django migration models python-3.6


【解决方案1】:

检查您的 python 最近是否已更新。 venv 可能指向旧的,重新创建 venv 为我们修复了它。

运行 mkvirtualenv venvvirtualenv venv(取决于您最初创建它的方式)也应该可以在保留已安装的软件包的同时工作。

【讨论】:

    【解决方案2】:

    !请注意,这真的是热修复!

    此问题出现在新版本的python - 3.6.3。

    降级到 3.6.2 帮助了我

    这是旧版 PPA:https://launchpad.net/~fkrull/+archive/ubuntu/deadsnakes/+index?batch=75&direction=backwards&start=75

    降级 python的进一步操作的命令:

    sudo apt install libpython3.6-minimal=3.6.2-1+xenial1 sudo apt install python3.6-minimal=3.6.2-1+xenial1 sudo apt install python3.6-stdlib=3.6.2-1+xenial1 sudo apt install python3.6=3.6.2-1+xenial1

    【讨论】:

    • 另外,同事说virtualenv reinitilizing解决了这个问题,因为那里使用了旧的常用python库
    • 升级到 3.6.3 后发生在我身上用 3.6.3 重新创建 virtualenv 解决了这个问题
    • @tista3 太棒了。谢谢。同样的事情也发生在我身上。我运行了一些更新(没有意识到 python 从 3.6.2 到 3.6.3)。你应该写一个答案,因为这对我来说是更明确的解决方案。
    【解决方案3】:

    这解决了我的问题:

    cd /usr/bin
    sudo cp python3.6 python3
    

    之前我有3.6.2,在做apt-upgrade之后系统坏了。

    【讨论】:

      【解决方案4】:

      这发生在我升级到 3.6.3 后尝试使用 Python 3.6.3 或更高版本创建新的 virtualenv。这解决了我的问题。

      【讨论】:

        猜你喜欢
        • 2017-06-07
        • 2020-03-22
        • 2020-05-30
        • 1970-01-01
        • 1970-01-01
        • 2020-05-19
        • 2012-02-27
        • 2020-04-03
        相关资源
        最近更新 更多