介紹
Anaconda是開源的Python包管理器。既是Python各種庫的大禮包集合,特別是數據分析和科學計算方面的庫都預裝了,也是一個能創建虛擬機環境的工具。
我為什么安裝
我安裝它的原因不是科學計算,是因為我要用AkShare庫獲取數據,要求Python 3.6 及以上版本。我電腦Python 2.7.15,又不想升級,所以安裝anaconda,用anaconda創建虛擬機環境,在虛擬機環境使用Python3.7,本地電腦保持原版本不變。
安裝過程
下載地址www.anaconda.com選擇download,
下載最新版本安裝包Anaconda3-2020.02-Windows-x86_64.exe,
這里選擇安裝目錄,將來創建的各個版本Python的環境文件也都放在這個目錄的子目錄下
這里我勾選了下面,沒有勾選上面,開始安裝
怎么用
打開
安裝完成,在開始搜索ana會出現Anaconda prompt,我是以管理員身份運行的,不用管理員權限應該也沒問題。
打開后窗口最前面的(base)表示你正處於Anaconda的基礎環境,基礎環境一般不真正使用,要根據自己具體項目需要建立自己的環境,否則這個工具的威力大打折扣了。
對比base環境的Python版本和正常命令行工具的Python版本,可以看到兩者互不影響。
Ana窗口
普通cmd
修改channels
建立環境的時候要下載很多包,如果下載速度慢會導致下載timeout而終止,會報錯,
解決辦法是把channels設置為清華大學的鏡像地址,在命令行依次執行下面命令。建議先設置下面的channels,然后創建你的第一個環境。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/
新建環境
建立自己環境的命令conda create -n ak_test python=3.7.6, ak_test是新建環境的名稱,叫什么隨意,3.7.6是我指定的版本,需要哪個版本就寫哪個。
到這里說明創建ak_test環境完成,同時提示進入環境和離開環境的命令。
執行conda activate ak_test,看到(base)變成了(ak_test),說明已經進入了ak_test環境。
安裝akshare
這步每個人都不一樣,按需要安裝自己要的庫。科學計算類的庫Anaconda是預裝的,安裝更簡單。
我建立這個環境是要使用akshare,安裝,報錯time out
是國內網絡問題,使用阿里雲鏡像進行安裝,命令如下
pip install akshare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com --upgrade
安裝成功!
使用akshare
下面兩個小例子展示akshare庫的功能。
股票策略指數曲線
aksharetest.py
import akshare as ak
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
stock_df = ak.zdzk_fund_index(30, plot=False)
futures_df = ak.zdzk_fund_index(32, plot=False)
fig = plt.figure(111, figsize=(20, 10), dpi=300)
adjust_stock_df = stock_df["20150102":] / stock_df["20150102"] * 1000
adjust_stock_df.plot(linewidth=4)
adjust_futures_df = futures_df["20150102":] / futures_df["20150102"] * 1000
adjust_futures_df.plot(linewidth=4)
plt.title("index example")
plt.legend()
plt.show()
會畫出圖片
股票指數查詢
aksharetest02.py
import akshare as ak
stock_df = ak.stock_zh_index_spot()
print(stock_df)
ak_test環境和base是隔離的
如果執行conda deactivate離開這個環境切換到(base)環境,可以看到找不到akshare模塊,說明base和ak_test環境是隔離的。
自建環境像是新建了個虛擬機
下面是vmware的虛擬機文件目錄和Anaconda的自建環境文件目錄,是不是有點像
總結
Anaconda可以迅速建立一套Python的開發運行環境,環境和宿主機互不影響,所建不同環境之間也互不影響,少了很多Python和庫版本上的牽絆。
它在包管理上的使用,本文沒有涉及。如果需要的庫是anaconda里面預裝的庫和包,過程比本文要簡單,堪稱一鍵裝機。