pycharm下載依賴一直失敗的問題踩坑指南
前言
pycharm下載依賴失敗這個(gè)問題對(duì)于我來說已經(jīng)是個(gè)老生常談的問題,與之共交手三次。
首次交鋒是在大二利用 樹莓派 做圖像采集傳輸時(shí),在樹莓派的ubantu上使用python,首次接觸python,環(huán)境配的痛苦不堪,也沒有學(xué)到什么,整體不太成功。
第二次與之會(huì)面是在 vmware的 centos7虛擬機(jī) 中,同樣需要在pycharm中配置一些python常用的庫,但同樣因?yàn)闀r(shí)間緊,對(duì)linux系統(tǒng)不夠熟悉,最終拆東墻補(bǔ)西墻,勉強(qiáng)配置出來,但同樣沒有本質(zhì)的收獲。
終于,隨著考研結(jié)束,我開始考慮畢設(shè)的問題,由于涉及 yolov5做深度學(xué)習(xí),我不得不再次面對(duì)這個(gè)問題。但!!事不過三,這一次我開展了詳細(xì)的研究,終于了解到了pycharm下載失敗的本質(zhì),并找到了相對(duì)萬能的解決方法。
問題復(fù)現(xiàn)
通常情況下,使用pycharm的我們隨手百度 “如何下載依賴”,大多數(shù)攻略都會(huì)告訴我們使用pycharm的內(nèi)置下載:先更換國內(nèi)的鏡像倉庫,然后搜索下載。
就像這張圖。
但結(jié)果總不盡如人意,一些比較簡單的依賴或許會(huì)下載成功,但大多數(shù)下載都會(huì)面臨這樣的情況。(這張圖是別人的,因?yàn)槲沂桥渲猛瓿珊髮懙牟┪模?/p>
這個(gè)失敗讓人摸不著頭腦,你或許會(huì)跟著報(bào)錯(cuò)欄的建議,使用相應(yīng)的命令繼續(xù)嘗試,但成功率卻很隨機(jī),有些時(shí)候可以成功,有些時(shí)候會(huì)帶領(lǐng)你走向一個(gè)新的坑,產(chǎn)生更多的問題。(親身體會(huì))
問題本質(zhì)
在拜讀了無數(shù)篇 大佬(對(duì)我有所幫助)和癟三(指文章胡言亂語偷竊他人成功的作者)的文章后,我終于有所啟發(fā),發(fā)現(xiàn)了一條至關(guān)重要的法則。
python中,各個(gè)依賴之間的版本對(duì)應(yīng)關(guān)系十分重要,而pycharm通常情況下都會(huì)為你選擇最新版本的依賴
可能有點(diǎn)難理解,我們從兩方面考慮,
第一點(diǎn)就是你實(shí)際業(yè)務(wù)所需要的依賴對(duì)版本的要求;第二點(diǎn)就是各個(gè)依賴之間的版本要求。
舉個(gè)例子:
你的python是3.11,你需要下載三個(gè)依賴:A,B,C
python | A (最新版本2.1.0) | B(最新版本0.15.1) | C(最新版本2.3.0) | |
---|---|---|---|---|
此時(shí)業(yè)務(wù)所需的正確依賴關(guān)系 | 3.1~3.9 | 小于等于2.0.0 | 小于等于0.14.4 | 無要求 |
可能的錯(cuò)誤配置1 | 3.11 | 2.0.0 | 0.14.4 | 2.3.0 |
可能的錯(cuò)誤配置2 | 3.8 | 2.1.0 | 0.15.1 | 2.3.0 |
正確配置 | 3.8 | 2.0.0 | 0.14.4 | 2.3.0 |
如上所示,有時(shí)候選擇最新版本其實(shí)并不一定是件好事,但是,僅僅把所有版本都控制在 業(yè)務(wù)所需的合法范圍 就萬事大吉了?
當(dāng)然不是,因?yàn)橛行?依賴之間 還有版本要求,接著上面的例子,此時(shí)你需要下載一個(gè)新的依賴 D,要求關(guān)系如下表,那么在這個(gè)時(shí)候剛剛正確的配置現(xiàn)在還正確嗎?
顯然出問題了,剛剛合法的A和B因?yàn)镈的限制,不得不改動(dòng)版本。并且由于A的限制,python的版本也受到了制約。
python | A (最新版本2.1.0) | B(最新版本0.15.1) | C(最新版本2.3.0) | D(最新版本1.15.0) | |
---|---|---|---|---|---|
此時(shí)業(yè)務(wù)所需的正確依賴關(guān)系 | 3.1~3.9 | 小于等于2.0.0 | 小于等于0.14.4 | 無要求 | 無要求 |
依賴間的版本要求 | 無要求 | 要求python必須小于3.7 | 無要求 | 無要求 | 需要A的版本小于等于1.9.0;B的版本小于等于0.13.0 |
剛剛的正確配置 | 3.8 | 2.0.0 | 0.14.4 | 2.3.0 | - |
因此,此時(shí)此刻,正確的版本應(yīng)該是:
python | A (最新版本2.1.0) | B(最新版本0.15.1) | C(最新版本2.3.0) | D(最新版本1.15.0) | |
---|---|---|---|---|---|
剛剛的正確配置 | 3.7 | 1.9.0 | 0.13.0 | 2.3.0 | 1.15.0 |
好了,到這里,原理就很清楚了,pycharm能夠下載成功的情況就是依賴關(guān)系簡單或者正好符合所有要求。
下載失敗要么就是缺依賴(就像你腿還沒長出來,我就要你跑步),要么就是版本沖突。
解決方案
說到這里,反應(yīng)再慢的人也應(yīng)該知道該怎么做了,去依賴的官網(wǎng),或者去百度“XX與XX之間的版本關(guān)系”,查到正確的版本,然后下載。
安裝提供兩種思路:
①.命令行直接下載,簡單快捷【極大多數(shù)依賴都可以解決】
pip install XXX(你要下載的依賴名稱)==x.x.x(你需要的版本號(hào)) -i .......(你所使用的國內(nèi)鏡像倉庫)
舉例:
pip install torch==1.10.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
②.從倉庫里下載whl文件,本地安裝
如果你真的運(yùn)氣很差,網(wǎng)絡(luò)巨慢,換了很多國內(nèi)倉庫依然要下幾個(gè)小時(shí),那么可以考慮這個(gè)方法,去任意一個(gè)國內(nèi)倉庫里直接找到你要的資源。
舉例:去清華鏡像站尋找 torch.
https://pypi.tuna.tsinghua.edu.cn/simple
然后根據(jù)你的操作系統(tǒng),版本,需求找到你需要的來下載。
這種方式之所以下載速度更快是因?yàn)榭梢允褂玫谌焦ぞ咦ト∠螺d,對(duì)比一下下載速度(例如 IDM ,不懂的自行百度)
然后打開cmd,進(jìn)入你剛剛下載好的文件的目錄
開始安裝即可
pip install torch-1.11.0-cp310-cp310-win_amd64.whl
補(bǔ)充總結(jié)
檢查是否安裝成功
pip list
下載的依賴存在哪
儲(chǔ)存在你python的安裝目錄,如圖
前面可能不同,主要找 Lib和site-packages
總結(jié)
通過本次探索,終于從本質(zhì)上解決了這個(gè)問題并起到了舉一反三的作用,特此記錄。
到此這篇關(guān)于pycharm下載依賴一直失敗的問題踩坑的文章就介紹到這了,更多相關(guān)pycharm下載依賴一直失敗內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python之matplotlib學(xué)習(xí)繪制動(dòng)態(tài)更新圖實(shí)例代碼
這篇文章主要介紹了python之matplotlib學(xué)習(xí)繪制動(dòng)態(tài)更新圖實(shí)例代碼,文中涉及具體實(shí)現(xiàn)代碼,演示效果及運(yùn)行時(shí)出現(xiàn)的問題分析等相關(guān)內(nèi)容,小編覺得還是挺不錯(cuò)的,這里分享給大家,需要的朋友可以參考下2018-01-01在Django的模型和公用函數(shù)中使用惰性翻譯對(duì)象
這篇文章主要介紹了在Django的模型和公用函數(shù)中使用惰性翻譯對(duì)象,Django是豐富多彩的Python框架中人氣最高的一個(gè),需要的朋友可以參考下2015-07-07jupyter?notebook?自定義python解釋器的過程詳解
大家都知道jupyter?notebook?網(wǎng)頁版交互環(huán)境,類似于ipython,功能強(qiáng)大,這篇文章主要介紹了jupyter?notebook?自定義python解釋器的過程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10深入了解Python中反射和動(dòng)態(tài)屬性的無限可能
理解 Python 中的反射和動(dòng)態(tài)屬性是編寫靈活和強(qiáng)大程序的關(guān)鍵,在這篇文章中,小編將帶領(lǐng)大家一起反射和動(dòng)態(tài)屬性的概念,并提供大量示例代碼,希望對(duì)大家有所幫助2023-11-11python unix時(shí)間戳轉(zhuǎn)換毫秒的實(shí)現(xiàn)
Unix時(shí)間戳是一種常見的時(shí)間表示方式,本文主要介紹了python unix時(shí)間戳轉(zhuǎn)換毫秒的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01Python入門_淺談for循環(huán)、while循環(huán)
下面小編就為大家?guī)硪黄狿ython入門_淺談for循環(huán)、while循環(huán)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05