Error in py_module_import(module, convert = convert) : ImportError: cannot import name 'get_host' from 'urllib3.util.url' (D:\\url.py) Run `reticulate::py_last_error()` for details.
这个错误表明在 urllib3
模块的 util.url
子模块中找不到名为 get_host
的函数。这可能是由于版本不匹配或者包的部分更新导致的。
这个问题似乎与 urllib3
版本 2.0 有关,可能需要考虑降级 urllib3
版本到较旧的版本。你可以尝试使用以下命令安装一个较旧版本的 urllib3
:
Copy code
pip install urllib3==1.26.8
根据引用至的内容,"ImportError: cannot import name 'get_host' from 'urllib3'"错误通常发生在安装了不兼容的opencv-python和opencv-contrib-python版本时。解决此错误的方法是删除这两个库并重新安装opencv-python及与之相匹配的版本的opencv-contrib-python。具体操作步骤如下:
-
在pycharm或服务器的终端中执行以下命令来卸载不兼容的opencv-python-headless版本:
pip uninstall opencv-python-headless
-
接着,安装低于4.3版本的opencv-python-headless:
pip install "opencv-python-headless<4.3"
这样,重新安装并匹配版本的opencv-python和opencv-contrib-python之后,应该可以解决"ImportError: cannot import name 'get_host' from 'urllib3'"错误。请尝试以上方法,并在评论区反馈是否解决了问题。
环境篇-Windows下安装OpenSSL
OpenSSL是一个功能丰富且开源的安全工具箱,它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。
OpenSSL采用C语言作为开发语言,这使得它具有优秀的跨平台性能,OpenSSL支持:
Linux
UNIX
Windows
Mac等平台
OpenSSL的github地址:https://github.com/openssl/openssl
OpenSSL工具箱,主要包括以下三个组件:
openssl:多用途的命令行工具
libcrypto:加密算法库
libssl:加密模块应用库,实现了ssl及TLS协议
一、下载安装包
如果不想自己编译源码,那么可以直接去下载编译好的二进制文件进行安装,省事方便。
有4种安装包:
Win64 OpenSSL v1.1.1i Light,安装Win64 OpenSSL v1.1.1i最常用的软件包
Win64 OpenSSL v1.1.1i,安装Win64 OpenSSL v1.1.1i完整软件包
Win32 OpenSSL v1.1.1i Light,安装Win32 OpenSSL v1.1.1i最常用的软件包
Win32 OpenSSL v1.1.1i,安装Win32 OpenSSL v1.1.1i完整软件包
我们选择下载“Win32 OpenSSL v3.1”。
二、安装
对下载的Win64OpenSSL-1_1_1i.exe,进行安装。
一般默认安装,但安装步骤中有一步,“Select Additional Tasks”,让选择OpenSSL的dll拷贝到什么地方,如下
三、验证安装是否正确
直接在cmd中,输入命令,查看OpenSSL版本
openssl version
结果,并不是我们安装的1.1.1i版
原因: 如果电脑上已经安装过其他软件,比如Git、VMware、Strawberry等,那么他们都自带了openssl