调用hashlib.md5时出现ValueError
我在使用hashlib.md5函数时遇到了一个异常,想要获取它的签名:
inspect.signature(hashlib.md5)
ValueError: 'usedforsecurity=?' is not a valid parameter name
这个问题发生在Python 3.10.8版本上。可能是什么原因呢?我该怎么避免这个问题呢?
1 个回答
0
这可能和安装conda的gcc包有关。具体原因还不太清楚。下面是一个完整的可复现的例子:
# 1. set up new environment
conda create -n pythontest python==3.10
conda activate pythontest
# 2. test python command in fresh environment
python -c "import hashlib, inspect; print(inspect.signature(hashlib.md5))"
# output as expected: (string=b'', *, usedforsecurity=True)
# 3. install gcc
conda install -c conda-forge gcc=12.1.0
# 4. rerun python command
python -c "import hashlib, inspect; print(inspect.signature(hashlib.md5))"
# ValueError: 'usedforsecurity=?' is not a valid parameter name
在我的情况下,gcc是因为这个回答而安装的,目的是解决一个常见的错误,叫做'GLIBCXX_3.4.30' not found
。
现在我在避免安装gcc,而是采用这种替代方法。