首页 > 解决方案 > Pip安装问题

问题描述

两个问题:

第一个是我尝试使用 python 调用 JSON API,我在代码中使用了“导入请求”。但收到一条错误消息:没有名为“请求”的模块

其次,当我尝试在 cmd 上安装 pip 时,我收到一条错误消息 - 无法获取 URL https://pypi.org/simple/pip

我的代码可能是错误的。请帮助解决这个问题。

命令提示符错误:

C:\Users\MEIPE\Desktop>python get-pip.py 在连接被 SSLError(SSLCertVerificationError( 1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败: 无法获取本地颁发者证书 (_ssl.c:1056)'))': /simple/pip/ Retrying (Retry(total=3, connect=None, read=None , redirect=None, status=None)) 在连接被 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)'))' 断开后:/ simple/pip/ 在连接被 'SSLError(SSLCertVerificationError(1, '[SSL:CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)'))': /simple/pip/ Retrying (Retry(total=1, connect=None, read=None, redirect=None, status =None)) 在连接被 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)'))' 中断后:/simple/pip/ Retrying (连接被'SSLError(SSLCertVerificationError(1,'[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败:无法获取本地颁发者证书)后重试(总计= 0,连接=无,读取=无,重定向=无,状态=无)) (_ssl.c:1056)'))': /simple/pip/ 无法获取 URLconnect=None, read=None, redirect=None, status=None)) 连接被 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056) )'))': /simple/pip/ 在连接被 'SSLError(SSLCertVerificationError(1, '[SSL :CERTIFICATE_VERIFY_FAILED]证书验证失败:无法获取本地颁发者证书(_ssl.c:1056)'))':/simple/pip/无法获取URLconnect=None, read=None, redirect=None, status=None)) 连接被 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056) )'))': /simple/pip/ 在连接被 'SSLError(SSLCertVerificationError(1, '[SSL :CERTIFICATE_VERIFY_FAILED]证书验证失败:无法获取本地颁发者证书(_ssl.c:1056)'))':/simple/pip/无法获取URL/simple/pip/ 在连接被 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败) 中断后重试 (Retry(total=0, connect=None, read=None, redirect=None, status=None)) : 无法获取本地颁发者证书 (_ssl.c:1056)'))': /simple/pip/ 无法获取 URL/simple/pip/ 在连接被 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败) 中断后重试 (Retry(total=0, connect=None, read=None, redirect=None, status=None)) : 无法获取本地颁发者证书 (_ssl.c:1056)'))': /simple/pip/ 无法获取 URLhttps://pypi.org/simple/pip/:确认 ssl 证书时出现问题:HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (导致通过 SSLError(SSLCertVerificationError (1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)'))) - 跳过找不到满足要求 pip 的版本(来自版本: ) 找不到匹配的 pip 分发无法获取 URL https://pypi.org/simple/pip/: 确认 ssl 证书时出现问题:HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (由 SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED) ] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)'))) - 跳过

代码:

import urllib.parse
import requests

main_api = 'http://nagiosdatagateway.vestas.net/esq/ITE1452552/logstash-?'

date = '2018.12.16'
url = main_api + urllib.parse.urlencode({'date':date})

json_date = requests.get(url).json()

print(json_data)

想要调用动态变化的 JSON API url 并将数据存储在 SQL Server 表中。这将帮助我安排每天执行的 python 脚本以获取 JSON 数据,然后从 SQL 表中获取月度报告。

标签: pythoninstallationpip

解决方案


没有名为“请求”的模块:

这仅仅意味着你没有安装包“requests”,它通过安装 pip 并运行命令来解决(就像你可能发现的,从另一个问题判断):

pip install requests

画中画问题:

您从 pip 得到的错误表明 SSL 证书不正确。

如果您位于使用自己的证书重新打包 SSL 通信的代理后面,则可能会发生这种情况,那么您需要将该证书添加到请求使用的证书中(请求使用 certifi 来知道要信任哪些证书,而不是操作系统证书)。

您可以通过将环境变量“REQUESTS_CA_BUNDLE”设置为包含您需要的代理证书的包来执行此操作。

让 pip 工作的另一种方法是通过告诉 pip 你信任主机,不管证书是否错误,通过对每个主机使用标志“--trusted-host”来绕过安全性。

python get-pip.py --trusted-host=pypi.org --trusted-host=...

您可能必须重复此步骤,因为 pip 在第一个 SSL 验证错误时失败,因此每次它都会在新的验证错误上失败,直到全部添加


推荐阅读