我正在尝试使用随 QGIS 3.34.9 安装的 OSGeo4W 更新一些 Python 依赖项(主要是远程感知)。这是使用Python 3.12.4。
我按照此网站上的说明进行操作:https://semiautomaticclassificationmanual.readthedocs.io/en/latest/installation_win64.html#qgis-download-and-installation并已成功下载依赖项,但无法安装它们。
使用
pip3 install --upgrade remotior-sensus scikit-learn torch
我得到以下信息:
Requirement already satisfied: remotior-sensus in c:\progra~1\qgis33~1.9\apps\python312\lib\site-packages (0.3.5)
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))': /simple/remotior-sensus/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))': /simple/remotior-sensus/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))': /simple/remotior-sensus/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))': /simple/remotior-sensus/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))': /simple/remotior-sensus/
Could not fetch URL https://pypi.org/simple/remotior-sensus/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/remotior-sensus/ (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))) - skipping
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))': /simple/scikit-learn/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))': /simple/scikit-learn/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))': /simple/scikit-learn/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))': /simple/scikit-learn/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))': /simple/scikit-learn/
Could not fetch URL https://pypi.org/simple/scikit-learn/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/scikit-learn/ (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))) - skipping
ERROR: Could not find a version that satisfies the requirement scikit-learn (from versions: none)
ERROR: No matching distribution found for scikit-learn
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1000)'))) - skipping
有人有什么想法吗?只是真的需要安装这个,这样我就可以使用其中一个工具了。
UNSAFE_LEGACY_RENEGOTIATION_DISABLED
已禁用,您的错误发生在 _ssl.c:1000。
我不确定您是否使用 Azure,但无论您是否使用,这可能会有所帮助:
证书验证失败。当在代理后面使用 Azure CLI 通过自签名证书拦截流量时,通常会发生这种情况。请将此证书添加到受信任的 CA 捆绑包中。更多信息:https://docs.microsoft.com/cli/azure/use-cli- effectively#work-behind-a-proxy。
来源:https://learn.microsoft.com/en-us/answers/questions/1618774/az-login-(ssl-unsafe-legacy-renegotiation-disabled
因此,该问题是证书验证问题,如果您在代理后面使用 CLI,该代理通过自签名证书拦截流量,那么您就会将此作为您看到的问题的原因。为了改善这种情况,请确保您有合适的 CA 捆绑包。
RedHad 有这篇关于代理 CA 捆绑包的文章:https://docs.openshift.com/container-platform/4.8/security/certificates/updating-ca-bundle.html