如何在 PyCharm 中指定 pip 选项以从requirements.txt进行安装

2024-04-28

要从公司代理后面安装 Python 包,有时需要添加选项pip, 例如--proxy or --cert.

如何在 PyCharm 中指定代理的说明见这个问题 https://stackoverflow.com/q/42363175/2311167以及如何添加any的选项pip调用的解释是这个答案 https://stackoverflow.com/a/46065175/2311167.

后者将允许我添加所需的--cert选项。不幸的是,这仅在手动安装软件包时有效,并且不包括我有一个软件包的情况requirements.txt文件并希望 PyCharm 自动安装列出的软件包。这会导致此错误:

连接因“SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED]”) 中断后重试(重试(总计=4,连接=无,读取=无,重定向=无,状态=无))证书验证失败(_ssl.c:第833章)'),)':/简单/机器人框架/

这意味着我需要在底层添加一些东西pip call (--cert就我而言)。

问题:我怎样才能指定pipPyCharm 将使用的选项来自动安装指定的包requirements.txt?


您可以下载公司防火墙插入的 CA 证书并将其安装到 pip 的密钥库中。以下是我使用的过程,但我确信那些更擅长证书格式/操作的人可以改进它:

请注意:每当 pip 运行时,Pip 的 cacerts.pem 文件都会被覆盖 已升级,因此需要重新插入公司证书。

Step 1。确定正确的密钥库。如果您使用的是虚拟环境,则 pip 激活时使用的密钥库的位置应该是C:\PATH\TO\VENV\Lib\site-packages\pip\_vendor\certifi\cacert.pem

注意:与我处理过的大多数密钥库(主要是在尝试让 JetBrains 产品在企业防火墙后面工作时)不同,这个密钥库是纯文本的。第 3 步中有更多相关内容.

Step 2。下载证书。使用 Firefox(有很多方法可以做到这一点),转到错误之前的 URL(类似于https://pypi.org/simple/ https://pypi.org/simple/, or https://pypi.python.org/simple/ https://pypi.python.org/simple/)。单击“锁定”>“显示连接详细信息”>“更多信息”。在页面信息窗口中,单击查看证书 > 详细信息选项卡。将顶级证书导出为 .crt/.pem。单击返回“常规”选项卡,步骤 3 中可能需要它。

Step 3。通常,您可以使用 keytool 命令,例如keytool -import -alias key-alias -file "C:\path\to\exported\key.der" -keystore "C:\Path\to\keystore\.PyCharm2018.3\system\tasks\cacerts",但是当你这样做时,你会得到以下结果keytool 错误:java.security.KeyStoreException:无法识别的密钥库格式:null。事实证明,您可以将步骤 2 中导出的纯文本证书直接复制到密钥库中。

您不需要包含任何标头信息,只需包含从 -----BEGIN CERTIFICATE----- 到 -----END CERTIFICATE----- 的标头信息。但是,如果将来有人(您)必须再次查看此密钥库,这可能会有所帮助,因此您可以从上面提到的“常规”选项卡中复制它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 PyCharm 中指定 pip 选项以从requirements.txt进行安装 的相关文章

随机推荐