iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
永豐金融APIs

深入解析 Shioaji API系列 第 21

Day 21 - Shioaji Docker 環境介紹

因前篇介紹到用Docker的方式執行Redis,而在shioaji的官網上也有提到有docker image可以進行下載及執行。而下面將簡單說明相關操作。
sinotrade/shioaji Docker Hub網頁:https://hub.docker.com/r/sinotrade/shioaji

run with interactive mode in docker

首先啟動PowerShell中,輸入「docker pull sinotrade/shioaji」下載docker image檔
https://ithelp.ithome.com.tw/upload/images/20211006/20140827TjzMSFKUQ9.png
下載完成後,輸入「docker run -it sinotrade/shioaji:latest」來啟動Shioaji的Docker
https://ithelp.ithome.com.tw/upload/images/20211006/20140827TYZhIbMdDO.png
執行後就會進入到shioaji的docker環境中,首先我們先輸入「pip list」查看套件的清單及版本。執行後可以看到這個docker image中,shioaji的版本是0.3.2.dev9
https://ithelp.ithome.com.tw/upload/images/20211006/20140827FeHhDqnhR5.png
由於之前已經公告,在2021/09/11之後都必須用0.3.3.dev1以上版本才可登入,所以首先輸入「pip uninstall shioaji」先移除舊版,再輸入「pip install shioaji」安裝最新版本,執行後就可以看到已成功安裝目前最新版本
https://ithelp.ithome.com.tw/upload/images/20211006/20140827BL01Zzz8Xv.png
最後輸入「python」並按Enter後,就可進入python的interactiv mode並測試shioaji的相關功能

run with jupyter lab or notebook

一樣開啟PowerShell並輸入「docker run -p 8888:8888 sinotrade/shioaji:jupyter」,這個指令的最後面的「:jupyter」,就是告訴系統目前要執行「jupyter」這個版本。而因為前面在下載時沒有指定版本,所以預設會下載「latest」最新版本,所以執行時,會自動下載jupyter這個版本。
https://ithelp.ithome.com.tw/upload/images/20211006/20140827gtQJtVP6zm.png
下載完成後,就會開始執行。成功執行後,最下面會顯示jupyter的網址,網址有兩個,我在windows平臺中只有第二個網址可以正常開啟jupyter。
https://ithelp.ithome.com.tw/upload/images/20211006/20140827D35LAbyvb1.png
開啟後,就可以看到jupyter的介面
https://ithelp.ithome.com.tw/upload/images/20211006/20140827NljNN8IhyG.png
不過目前sinotrade/shioaji:jupyter中的Python是用3.9版,並沒有辦法安裝shioaji套件。

continuumio/anaconda3

若你想先用docker的方式執行jupyter和shioaji,可以使用「continuumio/anaconda3」這個image,這個image的環境已經先安裝好Anaconda3,只要再手動安裝shioaji套件,就可以在jupyter上測試撰寫shioaji的相關程式碼
continuumio/anaconda3 Docker Hub 頁面https://hub.docker.com/r/continuumio/anaconda3

首先,開啟PowerShell並輸入「docker pull continuumio/anaconda3」下載docker image
https://ithelp.ithome.com.tw/upload/images/20211006/201408277j1SvkuIio.png
安裝完成後,請到docker hub的頁面中,將最下面的指令複製起來
https://ithelp.ithome.com.tw/upload/images/20211006/20140827JWlALQQSiG.png
接著,貼到PowerShell中後,按下Enter鍵。接著系統就會啟動docker環境及jupyter
https://ithelp.ithome.com.tw/upload/images/20211006/20140827MU45Za44w3.png
完成後,複製下面的網址並用瀏覽器開啟
https://ithelp.ithome.com.tw/upload/images/20211006/20140827y3vTl56TuE.png
開啟後,先開啟「New」中的「Termial」
https://ithelp.ithome.com.tw/upload/images/20211006/20140827z2yeNSNd8U.png
接著輸入「pip install shioaji」並按下Enter鍵,下載及安裝shioaji套件
https://ithelp.ithome.com.tw/upload/images/20211006/20140827NJmYulUCWx.png
安裝完成後,就可以把Terminal這個分頁關閉。接著開啟「New」中的「Python 3」
https://ithelp.ithome.com.tw/upload/images/20211006/20140827KiBqehs5pW.png
最後,輸入程式碼後,按上面的Run按鈕或是按「Shift+Enter」鍵來執行程式。如果shioaji套件有安裝成功的話,執行後就會出現下面這個結果
https://ithelp.ithome.com.tw/upload/images/20211006/20140827erWAaA6DKE.png

使用Docker Desktop來停止或啟動docker

若你有安裝Docker Desktop,使用過PowerShell啟動過Docker後,之後就可以直接透過Docker Desktop來停止或啟動Docker。
若要停止Docker,請直接在該Docker上按下停止按鈕
https://ithelp.ithome.com.tw/upload/images/20211006/201408279UgUHynPhw.png
若要啟動Docker,請直接在該Docker上按下啟動按鈕
https://ithelp.ithome.com.tw/upload/images/20211006/20140827MfiV3JkYfH.png
啟動後,點進去就可以看到在Termial中執行的訊息,也可以直接複製jupyter的連結
https://ithelp.ithome.com.tw/upload/images/20211006/201408279mpfTGN4Nh.png
若下載完Docker Image檔後沒有要使用而想要刪除時,也可以直接使用Docker Desktop進行操作。只要在Image右邊的「…」點「Remove」即可移除Image
https://ithelp.ithome.com.tw/upload/images/20211006/20140827gxxTXKqG1i.png


上一篇
Day 20 - 實測盤中訂閱 tick 與 bidask 資料是否有先後順序 (下)
下一篇
Day 22 - Blocking & Non-blocking Mode
系列文
深入解析 Shioaji API30

尚未有邦友留言

立即登入留言