python - 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 表中获取月度报告。
解决方案
没有名为“请求”的模块:
这仅仅意味着你没有安装包“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 验证错误时失败,因此每次它都会在新的验证错误上失败,直到全部添加
推荐阅读
- node.js - Meteor.loginWithPassword 不适用于带有 @ 字符的用户名
- sed - 使用前一行的缩进添加新行
- node.js - 是什么导致 XML 中的命名空间前缀与服务器不同
- php - wordpress 如果帖子是 in_category 显示类别名称
- javascript - 让 div 自动滚动到底部(反应)
- python - Python:投资组合优化工具
- jenkins - 无法使用 Jenkins 发布多项目构建
- javascript - Bootstrap : 在小屏幕上移除导航栏品牌,fe mobile
- javascript - 如何在 Nginx 服务器上获取客户端真实 IP
- sql-server-2017 - SQL分割字符串