簡體   English   中英

virtualenv 中的間歇性 pip 安裝錯誤?

[英]Intermittent pip install error in virtualenv?

對於以下命令:

virtualenv --system-site-packages `pwd`/.test

# load virtual environment
source `pwd`/.test/bin/activate

# install required python modules
# for some reason argparse is not included with credstash install but required at runtime :(
#PYPI_REPO=http://${PYPI_DNS}/aes/release/+simple/
#PYPI_DNS is internal company DNS 
pip install pip --upgrade -i ${PYPI_REPO} --quiet
pip install argparse==1.4.0 -i ${PYPI_REPO} --trusted-host ${PYPI_DNS} --quiet
pip install credstash==1.14.0 -i ${PYPI_REPO} --trusted-host ${PYPI_DNS} --quiet

這有時是成功的。

  1. 但是有時它會在安裝 argparse 時失敗:

    找不到滿足 argparse==1.4.0 要求的版本(來自版本:)找不到與 argparse==1.4.0 匹配的發行版

  2. 然后在其他時候,它會安裝 credstash 失敗:

    找不到滿足要求的版本 boto3>=1.1.1(來自 credstash==1.14.0)(來自版本:)沒有找到與 boto3>=1.1.1 匹配的發行版(來自 credstash==1.14.0)

我找不到它失敗時和成功時的原因。

請注意,上面的命令來自 xxx.sh 文件,該文件作為 EC2 UserData 腳本的一部分運行 - 它在 EC2 啟動期間幾乎可以正常工作 90%。

但是,當我手動運行 xxx.sh(安裝 credstash 后 sh 運行 ansible playbook - 因此手動運行是測試 playbook 的更快方法)時,它在 10% 的時間內工作,而在 EC2 實例上運行SSH - 錯誤在我上面提到的 2 條錯誤消息之間切換。 我不是 python 開發人員,所以它可能是我遺漏的東西,如果你能指出我正確的方向嗎?

這種間歇性故障很可能是由於您的內部 PYPI_REPO 響應緩慢。 要確認它,您可以在 pip install 命令中使用-v選項,以增加 pip 輸出的詳細程度。 然后,您可以分析 pip 輸出以檢查故障發生的位置。

您還可以在 pip 命令中使用--timeout 60選項設置更大的超時值。 默認超時值為 15 秒。 此超時值也可以通過 pip 配置文件 (%VIRTUAL_ENV%\\pip.ini) 設置。

[global]
timeout = 60

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM