我正在尝试通过Anaconda在Windows上使用Python请求模块。在使用pip安装后,尝试导入它会失败,因为在加密2.2.2模块中需要asn1crypto。在用pip安装后,它失败了,因为加密库(在Windows上是crypto.dll )不存在。这到底是从哪里来的?asn1crypto使用它的方式让它看起来像是libcryptoXXX.dll,但我没有看到任何情况下它会被称为crypto.dll。它看起来像是非常老的pyOpenSSL版本(当它是python-OpenSSL的时候)为Unix发行版提供了crypto.so,但是我不知道这是从哪里来的,也没有看到任何提到crypto.dll (并且crypto.so不再由requests说它需要的pyOpenSSL版本分发)。那么,这个crypto.dll是什么?我可以从哪里获得它?
发布于 2018-04-05 02:37:38
预先设定期望--我所能提供的是一个变通方法和我自己的经验记录。
我在Windows上遇到了与Anaconda相同的问题,在经历了一次小冒险之后,我简单地从Anaconda中删除了asn1crypto。这引发了一个依赖包的问题,所以我删除了它。5或6个包之后,我有了Anaconda的一个子集,其中的Python代码似乎成功地构建和运行。
我的评估是,这是Windows的问题,特别是asn1crypto (为什么您希望并需要在没有crypto.dll的机器上使用它,并且没有提供替代方案?)。我希望自己错了,希望有人能告诉我为什么。
我的小冒险让我徒劳无功地寻找神秘的密码库。我将在下面描述这一点。
为了寻找"crypto.dll",我在登陆here之前发现了一些可疑的线索,这表明我可以选择"libcrypto.dll“作为旧版本OpenSSH的一部分。不完全是我想要的,但值得一试。没有起作用。尝试了32位版本(通过system32的路径中)和64位版本(通过SysWOW64的路径中),但没有成功。尝试了新版本,并从Windows上的较新版本的OpenSSH更名为"libeay32.dll“版本。没有起作用。在Windows上尝试了OpenSSL的版本(莫名其妙的renamed in the other direction)。尝试将这些dlls伪装成"crypto.dll",这只会导致其他错误。
再一次,我希望有一个更令人满意的答案来存在(提示,未来的读者)。
https://stackoverflow.com/questions/49527416
复制相似问题