感覺比較實(shí)用的禁炒,特意注冊(cè)了簡(jiǎn)書而咆,增加一下瀏覽量,希望能更多的幫助到大家幕袱。csdn和博客園里面是一樣的暴备。
問題描述:
公司的windows電腦是內(nèi)網(wǎng),今天需要安裝一個(gè)Twisted庫(kù)们豌,用過的應(yīng)該都曉得涯捻,很常見的異步庫(kù)买决,但是僅僅依靠Pypi上下載下來的離線.whl安裝包是不行的俭尖,linux服務(wù)器都是遠(yuǎn)程連接和操作的烘贴,對(duì)于使用python的同志們就非常不友好了苞也,因?yàn)橛斜姸嗟牡谌綆?kù)需要聯(lián)網(wǎng)下載并安裝的,如果有網(wǎng)就能夠解決非常多的問題记靡,少花費(fèi)很多時(shí)間了刘绣,經(jīng)過長(zhǎng)時(shí)間的查閱資料和研究然磷,剛剛解決了一個(gè)這類的問題摄欲,感覺這類的回答蠻少的轿亮,也不太具體,特此記錄胸墙,希望能幫到有遇到同樣情況的朋友們(一般是有各種上網(wǎng)限制策略的公司會(huì)碰到)我注。
另:適用于公司電腦網(wǎng)速下載三方庫(kù)很慢,但是自己電腦網(wǎng)速很快(開熱點(diǎn)劳秋,VPN,F(xiàn)anQ等各種手段),可以在自己電腦上下號(hào)離線包后玻淑,拷貝過去的情況
需要準(zhǔn)備的工具/條件:
1. 公司電腦---用于接收離線安裝包(無法聯(lián)網(wǎng)/只能瀏覽器上網(wǎng)(如果去網(wǎng)上下離線包嗽冒,你就會(huì)碰到令人絕望的依賴包問題),但是諸如pycharm补履,cmd等都無法聯(lián)網(wǎng)的電腦添坊,*筆者就是如此),但是可以通過U盤、其他三方工具(如FileZilla等傳文件到數(shù)據(jù)庫(kù))箫锤,傳輸數(shù)據(jù)到該電腦的條件***必備條件贬蛙,如果任何數(shù)據(jù)都不能拷貝到這臺(tái)電腦上,那要它有何用谚攒?反正總有一種方法能夠傳輸阳准。
2.自己的電腦/任何可以聯(lián)網(wǎng)的電腦、服務(wù)器等設(shè)備馏臭,網(wǎng)速快野蝇,分分鐘下好的那種
解決步驟:
1. 發(fā)現(xiàn)問題:
1)去Pypi上搜索Twisted,鏈接:https://pypi.org/括儒,最新版本19.2.1的windos好像不能用绕沈,看樣子是tar.gz格式的,應(yīng)該只支持linux吧帮寻,這不重要乍狐,去release中找一下上個(gè)版本的離線包,download下來離線包Twisted-19.2.0-cp27-cp27m-win_amd64.whl,
2)離線安裝包命令:pip install <包名>
* 筆者公司電腦有python2.7和3.7兩個(gè)環(huán)境,默認(rèn)的會(huì)用python3.7環(huán)境固逗,故使用命令:
pip2 install Twisted-19.2.0-cp27-cp27m-win_amd64.whl
日常報(bào)錯(cuò)如下:
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/
一看就是要先安裝依賴包的樣子浅蚪,故繼續(xù)去Pypi下Automat,結(jié)果又報(bào)錯(cuò)抒蚜,需要PyHamcrest掘鄙,子子孫孫無窮盡也。嗡髓。操漠。額,當(dāng)時(shí)打算頭鐵一下饿这,全部手動(dòng)去Pypi上下下來的浊伙。。长捧。嚣鄙。結(jié)果發(fā)現(xiàn)有一個(gè)包的最新版本是2016年更新的,官網(wǎng)上寫著只支持py2.6串结。哑子。舅列。感受到了絕望,隨機(jī)轉(zhuǎn)向自己的電腦謀求解決方案
2.另謀出路:
1)自己電腦上就開心了嘛卧蜓,有網(wǎng)絡(luò)就是可以為所欲為~~~這個(gè)地方有個(gè)問題:我們只需要將Twisted的安裝包以及依賴給下載下來帐要,然后再copy到公司電腦上,如果在自己電腦上安裝好Twisted以后弥奸,再使用網(wǎng)上大部分推薦的方式: pip freeze > requirements.txt 方式的話榨惠,會(huì)將自己電腦里所有的庫(kù)全都打包,這是沒有必要的(畢竟我自己電腦上的包有點(diǎn)多盛霎。赠橙。。幾百M(fèi)應(yīng)該要吧)
2)故愤炸,有沒有一個(gè)命令能夠只將所需要的庫(kù)機(jī)器依賴的庫(kù)給下載下來期揪,并放在我們指定的目錄能?
答案當(dāng)然是:有!R』谩横侦!如下:
pip download 你的包名 -d "你的文件夾路徑(windows下貌似兩邊要加雙引號(hào)來表示文件夾)"
* 筆者電腦依然是雙python版本,且默認(rèn)版本是python3,還讓我給改了環(huán)境變量绰姻,故采取另外一種命令:
?py -2 -m pip download Twist==19.2.0(此處為你的包名即指定的版本) -d?"twist==19.2.0"?(此處為你的文件夾位置枉侧,我是在當(dāng)前路徑下建立的,注意你的路徑位置狂芋,如果不是你想要的路徑榨馁,可能就下到命令行的當(dāng)前路徑去了,自己切換一下)?
3)結(jié)果就是,當(dāng)當(dāng)當(dāng)當(dāng):尼瑪帜矾,10個(gè)依賴包翼虫,加上自己有11個(gè)。屡萤。珍剑。還好我沒繼續(xù)頭鐵。死陆。招拙。
?
4)接下來就好說了,壓縮打包措译,名字隨意起别凤,如:twisted==19.2.0.zip,傳輸?shù)焦倦娔X上领虹,解壓规哪,進(jìn)入該文件夾(本來我以為能夠直接pip install 該壓縮包,然而事實(shí)果然大臉)
5)? 老老實(shí)實(shí)的輸入所有包名吧塌衰,目前沒發(fā)現(xiàn)有啥其他的好方法诉稍,好像pip install --no-index --find-links=? 只能用于linux環(huán)境下吧蝠嘉,好在可以一口氣將所有的包名都用tab補(bǔ)全了,即:
pip install 包名1 包名2 包名3 (全部都可以輸入前兩位字母補(bǔ)全)
?
3.展示效果:?
pip list
*筆者是py -2 -m pip list
找一找杯巨,果然可以找到Twisted是晨,安裝完成,問題解決完畢舔箭!
?
PS:如果是linux的話,可以用pip list |grep Twisted蚊逢,但是如果配置差层扶,或者包太多,可能會(huì)比較慢喔烙荷,還是用眼睛看吧镜会,比較快