問題描述:
公司的windows電腦是內網,今天需要安裝一個Twisted庫,用過的應該都曉得,很常見的異步庫,但是僅僅依靠Pypi上下載下來的離線.whl安裝包是不行的,linux服務器都是遠程連接和操作的,對於使用python的同志們就非常不友好了,因為有眾多的第三方庫需要聯網下載並安裝的,如果有網就能夠解決非常多的問題,少花費很多時間了,經過長時間的查閱資料和研究,剛剛解決了一個這類的問題,感覺這類的回答蠻少的,也不太具體,特此記錄,希望能幫到有遇到同樣情況的朋友們(一般是有各種上網限制策略的公司會碰到)。
另:適用於公司電腦網速下載三方庫很慢,但是自己電腦網速很快(開熱點,VPN,FanQ等各種手段),可以在自己電腦上下號離線包后,拷貝過去的情況
需要准備的工具/條件:
1. 公司電腦---用於接收離線安裝包(無法聯網/只能瀏覽器上網(如果去網上下離線包,你就會碰到令人絕望的依賴包問題),但是諸如pycharm,cmd等都無法聯網的電腦,*筆者就是如此),但是可以通過U盤、其他三方工具(如FileZilla等傳文件到數據庫),傳輸數據到該電腦的條件***必備條件,如果任何數據都不能拷貝到這台電腦上,那要它有何用?反正總有一種方法能夠傳輸。
2.自己的電腦/任何可以聯網的電腦、服務器等設備,網速快,分分鍾下好的那種
解決步驟:
1. 發現問題:
1)去Pypi上搜索Twisted,鏈接:https://pypi.org/,最新版本19.2.1的windos好像不能用,看樣子是tar.gz格式的,應該只支持linux吧,這不重要,去release中找一下上個版本的離線包,download下來離線包Twisted-19.2.0-cp27-cp27m-win_amd64.whl,
2)離線安裝包命令:pip install <包名>
* 筆者公司電腦有python2.7和3.7兩個環境,默認的會用python3.7環境,故使用命令:
pip2 install Twisted-19.2.0-cp27-cp27m-win_amd64.whl
日常報錯如下:
Collecting Automat>=0.3.0 (from Twisted==19.2.0) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, stat us=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.c onnection.VerifiedHTTPSConnection object at 0x0000000003E4BC50>: Failed to estab lish a new connection: [Errno 10061] ',)': /simple/automat/
一看就是要先安裝依賴包的樣子,故繼續去Pypi下Automat,結果又報錯,需要PyHamcrest,子子孫孫無窮盡也。。。額,當時打算頭鐵一下,全部手動去Pypi上下下來的。。。。結果發現有一個包的最新版本是2016年更新的,官網上寫着只支持py2.6。。。感受到了絕望,隨機轉向自己的電腦謀求解決方案
2.另謀出路:
1)自己電腦上就開心了嘛,有網絡就是可以為所欲為~~~這個地方有個問題:我們只需要將Twisted的安裝包以及依賴給下載下來,然后再copy到公司電腦上,如果在自己電腦上安裝好Twisted以后,再使用網上大部分推薦的方式: pip freeze > requirements.txt 方式的話,會將自己電腦里所有的庫全都打包,這是沒有必要的(畢竟我自己電腦上的包有點多。。。幾百M應該要吧)
2)故,有沒有一個命令能夠只將所需要的庫機器依賴的庫給下載下來,並放在我們指定的目錄能?
答案當然是:有!!!如下:
pip download 你的包名 -d "你的文件夾路徑(windows下貌似兩邊要加雙引號來表示文件夾)"
* 筆者電腦依然是雙python版本,且默認版本是python3,還讓我給改了環境變量,故采取另外一種命令:
py -2 -m pip download Twist==19.2.0(此處為你的包名即指定的版本) -d "twist==19.2.0" (此處為你的文件夾位置,我是在當前路徑下建立的,注意你的路徑位置,如果不是你想要的路徑,可能就下到命令行的當前路徑去了,自己切換一下)
3)結果就是,當當當當:尼瑪,10個依賴包,加上自己有11個。。。還好我沒繼續頭鐵。。。
4)接下來就好說了,壓縮打包,名字隨意起,如:twisted==19.2.0.zip,傳輸到公司電腦上,解壓,進入該文件夾(本來我以為能夠直接pip install 該壓縮包,然而事實果然大臉)
5) 老老實實的輸入所有包名吧,目前沒發現有啥其他的好方法,好像pip install --no-index --find-links= 只能用於linux環境下吧,好在可以一口氣將所有的包名都用tab補全了,即:
pip install 包名1 包名2 包名3 (全部都可以輸入前兩位字母補全)
3.展示效果:
pip list
*筆者是py -2 -m pip list
找一找,果然可以找到Twisted,安裝完成,問題解決完畢!
PS:如果是linux的話,可以用pip list |grep Twisted,但是如果配置差,或者包太多,可能會比較慢喔,還是用眼睛看吧,比較快
博客園的瀏覽量貌似沒CSDN高吧,附上csdn的鏈接:https://blog.csdn.net/u014179267/article/details/95364220