2017-08-22 31 views
2

我正在使用python Anaconda。我很困惑,這是將所有Anaconda軟件包更新到最新版本的正確命令。似乎有2個可以使用的命令;哪個是更新所有anaconda python軟件包的正確命令?

$ conda update --all 

$ conda update anaconda 

運行後者,水蟒後,升級到ver4.4。隨後,我運行了前者,詢問我是否想降級一些軟件包。這讓我感到困惑。哪個是正確的命令?

回答

2

anaconda包是一個「元」包,這意味着它本身不包含任何包,它只是設置Continuum包含在「Anaconda發行版」中的許多包的特定版本。因此,當你鍵入

conda update anaconda 

你告訴暢達更新到最新版本的anaconda包,並且在anaconda包中指定安裝所有他們的特定版本的依賴關係。這具有以下優點:Continuum已經對這些軟件包進行了測試,並保證不會有任何衝突。

當你鍵入

conda update --all 

暢達使用其內部算法,試圖解決依賴性的版本。我不確定細節,但這可能會導致一些軟件包被升級,但其他軟件包會降級,因爲您安裝的某些軟件包需要降級版本的依賴項。特別是隨着元數據包安裝的軟件包數量,衝突肯定會發生,conda正在盡全力解決所有這些問題。

至於要使用哪一個,我想說如果你從anaconda開始,繼續使用anaconda來避免版本衝突(即conda update anaconda)。但是,如果您擁有全新的環境,或者您使用的是未安裝anaconda元包的Miniconda,那麼conda update --all可能是更好的選擇。你的旅費可能會改變。

+0

從你的答案看來,最安全的做法是不運行'conda update --all'並且只保留'conda update anaconda'。不幸的是,我已經運行了'conda update --all'。結果是否會導致蟒蛇不兼容?如果是的話,我該如何扭轉損害?運行'conda更新anaconda'再次扭轉傷害? – user3848207

+1

可能''conda install anaconda'會更好,因爲它應該強制所有依賴返回到anaconda包中指定的版本。但是,您也可以運行它,看看會發生什麼! – darthbith

相關問題