anaconda 安裝在c盤_最省心的Python版本和第三方庫管理——初探Anaconda

4663413dc04b674f37d2c0a4e9a6c969.png

打算把公眾號和知乎專欄的文章搬運一點過來。?

歷史文章可以去關注我的公眾號:不二小段,或者知乎:段小草。

也歡迎來看我的視頻學Python↓↓↓

跟不二學Python

db71f33de1f7836f62d6bd77509e2520.png

這篇文章可以作為Python入門的第一站

502c26339e52d07ba2e6ca2ededba199.png

可以結合這期視頻來看,基本上是這期視頻的文字版教程了

e135aa0dcc09b3a584da5d2200a3cc20.png

說起Python入門第一步,很多人會說是Hello World。殊不知擋在眾多小白同學面前的一座大山便是安裝Python。安裝Python有什么難的,可要真從和之爭說起,夾雜著諸如Windows下如何安裝lxml庫,如何管理Python 和Python 之類的問題,工作量其實還是不小的。說起來我也是2、3混用了很久,初學時很長一段時間都停留在自帶的idle編輯器,中間也因為編碼問題專門轉到過Ubuntu上去。現在的日常是本地Pycharm+遠程服務器的Jupter Notebook。

今天寫這篇文章,面向的是電腦里連Python都還沒裝的同學,推薦一種目前就我個人體驗來看,最簡單舒服省心的Python環境配置。當然了,如果電腦里混裝了多版本很頭疼,或者還在用idle+cmd進入Python命令行這樣反人類的入門方式,不妨跟著試一試。

今天的主角是Anaconda,之后會再寫文章詳細介紹Jupyter的配置(本地和服務器配置,包括Win Server和Linux Server,還有多用戶版本的Jupyterhub配置,當然拖更遙遙無期,急用的同學就自行谷歌,有問題可以私信我…)。

Anaconda是Python的一個開源發行版本,主要面向科學計算。我們可以簡單理解為,Anaconda是一個預裝了很多我們用的到或用不到的第三方庫的Python。而且相比于大家熟悉的pip install命令,Anaconda中增加了conda install命令。當你熟悉了Anaconda以后會發現,conda install會比pip install更方便一些。比如大家經常煩惱的lxml包的問題,在Windows下pip是無法順利安裝的,而conda命令則可以,后面會詳細展示。

Anaconda的官網在這里 。與Python相對應,Anaconda的版本分為Anaconda2和Anaconda3,大家可以自行下載日常常用的版本,提供32位和64位下載。(和混用的同學也不要擔心,后面我們會講具體的版本管理)

當然了,如果你真的選擇去官網下載Anaconda的話會發現,速度慢到令人發指;當你等待了30多分鐘下載安裝完以后想要安裝或者更新其中的包時,又會發現其速度慢到會斷開連接安裝報錯…

(劃重點)正確的姿勢是從國內清華大學開源軟件鏡像站進行下載并配置鏡像。

下載地址

選擇相應的版本進行下載就好(直接找2017年最新版的Anaconda2或Anaconda3)。

下載完成后安裝。C盤不吃緊的同學可以一路next,C盤如果吃緊最好換個地方,日積月累Anaconda會占用不小的地方…

建議作者在文章里加上 anaconda安裝路徑不要出現空格

下載過程中除了安裝位置外,還有兩個需要確認的地方。

714f5f79f04cc05250b03ee6fd736d6c.png
fa399eea74af0daccdbe2594e616ac57.png

第一個勾是是否把Anaconda加入環境變量,這涉及到能否直接在cmd中使用conda、jupyter、ipython等命令,推薦打勾,如果不打勾話問題也不大,可以在之后使用Anaconda提供的命令行工具進行操作;第二個是是否設置Anaconda所帶的Python 為系統默認的Python版本,這個自己看著辦,問題不大。

一路安裝完成以后,就可以打開cmd測試一下安裝結果。

分別輸入python、ipython、conda、jupyter notebook等命令,會看到相應的結果,說明安裝成功。(python是進入python交互命令行;ipython是進入ipython交互命令行,很強大;conda是Anaconda的配置命令;jupyter notebook則會啟動Web端的ipython notebook)

5a7d067004341418661bb5d87e3f920b.png

需要注意的是jupyter notebook命令會在電腦本地以默認配置啟動jupyter服務,之后會再談到這個。

da9c09f2e77826cd111940bcb31401c5.png

Anaconda安裝成功之后,我們需要修改其包管理鏡像為國內源

簡單來說就是在cmd中分別運行這兩個命令就好了。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes

設置好鏡像以后,我們繼續進行環境管理。

因為我現在安裝的是最新版Anaconda3,其自帶的Python版本為,如果我們需要添加版本的Python,可以進行如下操作。(同理,如果有人安裝的是Anaconda2需要添加Python ,之后操作里的改為或即可)

conda create -n py27 python=

其中py27是新添加環境的名字,可以自定義修改。

之后通過activate py27和deactivate py27命令激活、退出該環境。(Linux和OS系統的命令似乎是source activate和source deactivate)

activate py27

c7c4dc980f3d68a7d96e03404a40b490.png

在激活新環境后,我們所做的操作便都是在新環境下的,包括pip命令來安裝第三方庫。我們來試一下pip安裝lxml。

pip install lxml

9bbfa2d14d1292675ae078f05a26cbff.png
df371292b9f22168eeca6e24f9a8162f.png

不出所料…失敗了…如果你執意要自己解決這個問題,會很復雜,至少我在小白階段直接放棄了解決這個問題…

那么正確的做法是什么呢?一條命令就夠了。

conda install -n py27 lxml

10acbac237ed30e28d00dd6f05026cfa.png
f7b7ba3fd935e9edafb954260c141367.png

當然了,對于可以正常安裝的庫,自然可以使用pip命令。

afcca8ca2ffd5b81d750b3e46f4daf9d.png

最后,我們可以通過conda info -e命令查看已有的環境。

通過conda remove -n env_name --all來刪除指定的環境(如果不添--all參數,而是指明某個庫名,則是刪除該庫)。

比如我現在要刪除py35這個環境。

d7dfa1842bb2cf3f86b66eff009a1b0b.png

彩蛋1

由于我們現在安裝的是Anaconda3,之后又新添加了Python 環境,但是Python 環境中安裝了Anaconda自帶的科學計算環境,Python 中卻沒有,那么如何為新添加的環境也裝上Anaconda的科學計算包呢,沒必要一個一個來,更沒有必要再去安裝Anaconda2了,只需:

conda install -n py27 anaconda

但是這會安裝非常多,非常多,非常多的包,慎用。

彩蛋2

我們已經說完了Anaconda中的包管理,那么既然Anaconda中可以使Python 和共存,Jupyter Notebook是否可以呢?

fcbf7d3dbce27f7334490d8e5a93a577.png

當然可以。

在這里我們不展開來介紹Jupyter Notebook,因為后面還會專門再寫一篇,大家可以先初步了解。多版本的Python或者R等語言,在Jupyter中被稱作kernel。

如果想要給Jupyter添加多個Python版本的kernel,有兩種做法。

如果這個Python版本已經存在(比如我們剛才添加的py27環境),那么你可以直接為這個環境安裝ipykernel包。即:

conda install -n py27 ipykernel

然后激活這個環境,輸入

python -m ipykernel install --user

8c85336bf18f62c71ea0d0d1d26810e8.png
8067f250b1949e5b10515794ee757b34.png

如果所需版本并不是已有的環境,可以直接在創建環境時便為其預裝ipykernel。

如:

conda create -n py27 python= ipykernel

PS 如果想要在創建新版本環境時直接裝上其他庫,像這里的ipykernel一樣直接附在后面就可以了。之后同樣是激活環境并添加kernel。

PPS 這個命令生成的其實是一個JSON文件,可以直接查看并修改。

7b57e61d0fd3f14bf32311678d4a7948.png

希望大家從此不再因為選擇版本、安裝Python、管理環境、添加第三方庫(能用conda用conda,不能用conda用pip)、選擇IDE(單文件Jupyter,項目組織開Pycharm)等等雜事所困擾,專心于代碼。

(當然了,有一些庫不論conda和pip都無法直接安裝,只能下載.whl,這里不再贅述了,小白同學遇到這種問題的時候,應該也有能力自己解決這種問題了)

祝進步,祝愉快!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258632.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258632.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258632.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Iris recognition papers in the top journals in 2017

轉載自:https://kiennguyenstuff.wordpress.com/2017/10/05/iris-recognition-papers-in-the-top-journals-in-2017/ Top journals: – IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI) – Pattern Recognition (PR) – IEEE Transaction on…

判斷瀏覽器是否為IE內核的最簡單的方法

沒啥說的,直接貼代碼,算是ie hack了。 if (![1,]) {alert(is ie); } 轉載于:https://www.cnblogs.com/jasondan/p/3716660.html

dubbo控制中心部署,權重配置,以及管控臺中各個配置的簡單查看

dubbo給我們提供了現成的后臺管理網站,專門管理這些服務,應用,路由規則,動態配置,訪問控制、權重控制、負載均衡等等,還可以查看系統日志,系統狀態,系統環境等等,功能很是…

給git配置http代理

1. 安裝socat apt-get install socat 2. 創建配置文件,取名gitproxy填入以下內容: #!/bin/sh_proxy135.245.48.33_proxyport8000 exec socat STDIO PROXY:$_proxy:$1:$2,proxyport$_proxyport 加上可執行權限chmod x gitproxy,將此文件放在環…

faster rcnn在自己的數據集上訓練

本文是一個總結,參考了網上的眾多資料,匯集而成,以供自己后續參考。 一般說來,訓練自己的數據,有兩種方法:第一種就是將自己的數據集完全改造成VOC2007的形式,然后放到py-faster-rcnn/data 目錄…

1001種玩法 | 1001種玩法--數據存儲(2)

新智云www.enncloud.cn第二趴 Flockdb:一個高容錯的分布式圖形數據庫 FlockDB是一個存儲圖數據的分布式數據庫,圖數據庫的存儲對象是數學概念圖論里面的圖,而非圖片。Twitter使用它來存儲人與人之間的關系圖,這些關系包括&#xf…

python邏輯量有什么_Python中的邏輯運算符有什么?

邏輯運算符用于組合多個條件測試語句。假設“我今年18歲”和“我身高2米”這兩個語句,前一個語句是真的,后一個語句是假的,因此,“我今年18歲,并且我身高2米”這個語句是假的。其中,“并且”可以認為是邏輯…

時區日期處理及定時 (NSDate,NSCalendar,NSTimer,NSTimeZone)

NSDate存儲的是世界標準時(UTC),輸出時需要根據時區轉換為本地時間 Dates NSDate類提供了創建date,比較date以及計算兩個date之間間隔的功能。Date對象是不可改變的。 如果你要創建date對象并表示當前日期,你可以alloc一個NSDate對象并調用in…

Android ListView分頁,動態添加數據

1.ListView分頁的實現,重點在于實現OnScrollListener接口,判斷滑動到最后一項時,是否還有數據可以加載, 我們可以利用listView.addFootView(View v)方法進行提示 自定義一個ListView(這里本來想進行一些自定已修改的。…

faster rcnn的測試

當訓練結束后,faster rcnn的模型保存在在py-faster-rcnn/output目錄下,這時就可以用已有的模型對新的數據進行測試。 下面簡要說一下測試流程。 測試的主要代碼是./tools/test_net.py,并且使用到了fast_rcnn中test.py。 主要流程就是&…

python重點知識 鉆石_python——子類對象如何訪問父類的同名方法

1. 為什么只說方法不說屬性關于“子類對象如何訪問父類的同名屬性“是沒有意義的。因為父類的屬性子類都有,子類還有父類沒有的屬性,在初始化時,給子類對象具體化所有的給定屬性,完全沒必要訪問父類的屬性,因為是一樣的…

Android-Universal-Image-Loader 的使用說明

這個圖片異步載入并緩存的類已經被非常多開發人員所使用,是最經常使用的幾個開源庫之中的一個,主流的應用,隨便反編譯幾個火的項目,都能夠見到它的身影。但是有的人并不知道怎樣去使用這庫怎樣進行配置,網上查到的信息…

faster rcnn end2end 訓練與測試

除了前面講過的rpn與fast rcnn交替訓練外,faster rcnn還提供了一種近乎聯合的訓練,姑且稱為end2end訓練。 根據論文所講,end2end的訓練一氣呵成,對于前向傳播,rpn可以作為預設的網絡提供proposal.而在后向傳播中&…

jquery ui動態切換主題的一種實現方式

這兩天看coreservlets上的jQuery教程&#xff0c;雖然比較老了&#xff0c;不過講得還是不錯。最后一部分講jQuery ui 主題切換&#xff0c;用他介紹的方法實現不了。于是自己修改了下&#xff0c;可以了。代碼如下&#xff1a;html部分&#xff1a;<fieldset class"ui…

[學習總結]7、Android AsyncTask完全解析,帶你從源碼的角度徹底理解

我們都知道&#xff0c;Android UI是線程不安全的&#xff0c;如果想要在子線程里進行UI操作&#xff0c;就需要借助Android的異步消息處理機制。之前我也寫過了一篇文章從源碼層面分析了Android的異步消息處理機制&#xff0c;感興趣的朋友可以參考 Android Handler、Message完…

python字頻統計軟件_python結巴分詞以及詞頻統計實例

python結巴分詞以及詞頻統計實例發布時間&#xff1a;2018-03-20 14:52,瀏覽次數&#xff1a;773, 標簽&#xff1a;python# codingutf-8Created on 2018年3月19日author: chenkai結巴分詞支持三種分詞模式&#xff1a;精確模式: 試圖將句子最精確地切開&#xff0c;適合文…

html從入門到賣電腦(三)

CSS3中和動畫有關的屬性有三個 transform、 transition 和 animation。下面來一一說明: transform 從字面來看transform的釋義為改變&#xff0c;使…變形&#xff1b;轉換 。這里我們就可以理解為變形。那都能怎么變呢&#xff1f; none 表示不進行變換&#xff1b; rotat…

visual studio 2015安裝 無法啟動程序,因為計算機丟失D3DCOMPILER_47.dll 的解決方法

對于題目中的解決方法&#xff0c;我查到了微軟提供的一個方案&#xff1a;https://support.microsoft.com/en-us/help/4019990/update-for-the-d3dcompiler-47-dll-component-on-windows 進入如下頁面&#xff1a;http://www.catalog.update.microsoft.com/Search.aspx?qKB4…

UI1_UIView層操作

// // ViewController.m // UI1_UIView層操作 // // Created by zhangxueming on 15/7/1. // Copyright (c) 2015年 zhangxueming. All rights reserved. //#import "ViewController.h"interface ViewController ()endimplementation ViewController- (void)view…

JavaScript Patterns 1 Introduction

1.1 Pattern "theme of recurring events or objects… it can be a template or model which can be used to generate things" (http://en.wikipedia.org/wiki/Pattern). ? Design patterns - Elements of Reusable Object-Oriented Software. ? Coding patte…