调用hashlib.md5时出现ValueError

0 投票
1 回答
31 浏览
提问于 2025-04-14 18:06

我在使用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,而是采用这种替代方法。

撰写回答