公司項目中有主備CDN存在,由於阿里雲以及騰訊雲的預熱功能不支持自動(一般是雲函數),所以就根據雲廠商給的腳本稍作更改,手動傳入數據來進行預熱。
由於之前部署在centos7.7系統python2.7.5上,腳本可以正常運行,由於某些原因,機器要進行下線,導致必須遷移腳本。為了節省成本,決定復用線上環境的機器,結果在pip安裝模塊時,模塊安裝一直報錯,最后經過新舊兩台服務器對比解決了pip安裝模塊報錯的問題。
為了防止因為項目環境版本比較老,再次出現這個問題,這里做一個記錄。
1.機器信息
主機名 |
系統版本 |
Pyhton版本 |
Pip版本 |
cn-gc-bastion |
Centos7.7 |
2.7.5 |
8.1.2 |
cn-yuu-login02 |
Centos7.8 |
2.7.5 |
20.3.4 |
2.報錯現象
在新部署機器上使用python執行腳本,會告知沒有安裝oos2模塊。
使用pip安裝oss2會有如下報錯
這時,不管怎么安裝setuptools_rust都會顯示沒有這個模塊。
3.解決辦法
對比了2台機器的setuptools版本,發現新機器版本非常老,升級后就可以安裝oss2模塊了。
cn-gc-bastion
cn-yuu-login02
接下來升級cn-yuu-login02的setuptools版本,結果發現版本報錯
需要將PIP版本也進行升級
再次安裝setuptools就可以了
在安裝oss2即可
4.腳本執行
安裝oss2只是其中一個模塊,在執行腳本的時候還是會報錯,因為該刷新CDN的腳本中需要使用騰訊雲和阿里雲的SDK模塊。
以下還要安裝3個模塊。
pip install qcloud_cos pip install tencentcloud-sdk-python pip install aliyun-python-sdk-cdn
其中qcloud_cos要下載包安裝,pip安裝的包可能無法使用,並有如下報錯。
使用安裝包安裝解決問題(使用安裝包的安裝方式前,要卸載pip的qcloud_cos的安裝)
wget https://files.pythonhosted.org/packages/ec/ee/0f314f3e4d97c6b08193422e2436f5fc0af75523d2a7f29e587b73a2b65b/qcloud_cos-3.3.6.tar.gz
python setup.py install