介紹
Anaconda是開源的Python包管理器。既是Python各種庫的大禮包集合,特别是資料分析和科學計算方面的庫都預裝了,也是一個能建立虛拟機環境的工具。
我為什麼安裝
我安裝它的原因不是科學計算,是因為我要用AkShare庫擷取資料,要求Python 3.6 及以上版本。我電腦Python 2.7.15,又不想更新,是以安裝anaconda,用anaconda建立虛拟機環境,在虛拟機環境使用Python3.7,本地電腦保持原版本不變。
安裝過程
下載下傳位址www.anaconda.com選擇download,
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcukzM3ATMxIjM0ADMyAjMfVkQlIUOlUTRlEUQlgDOlYTRlETQlYkQlQTRlUUQlUkQlUTRl0CN5ITO5gjNzYjMwYTMvwFNx0CMx0CMyAjMvwlclR3ch12LcdXYy9CXlJXd0NWaw9CXsRnbsxGevwVbvNmLlVGdpd2Lc9CX6MHc0RHaiojIsJye.png)
下載下傳最新版本安裝包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環境是隔離的。