套件的安裝、導入與使用-Python 從零開始(五)

本系列從 Python 基本的語法開始介紹,讓沒有程式背景的新手,也能開始用 Python 程式交易。如果你是進階的交易者,可以點擊連結觀看量化通其他 Python 進階文章,認識 爬蟲實用套件資產配置 等內容。

立即訂閱電子報,掌握最新資訊!

    電子郵件

    有興趣的主題
    量化交易金融知識台灣股市國內期貨海外期貨虛擬貨幣

    有興趣的量化交易軟體/平台
    不清楚MultiChartsTradingViewPythonXQMT4MT5

    還有什麼詢問的?

    行銷活動 1920 400

    好富投 1920x400
    好富投 978x258

    點我了解更多資訊


    一、安裝套件

    講到 Python,就想必絕對不能錯過 Python 廣大的套件生態圈,所以這章節就來跟大家講解怎麼安裝、導入與使用套件囉!Python 安裝套件有很多做法,這邊跟大家介紹常用的幾種做法:用 pip install 安裝以及用 Pycharm 工具安裝。

    1. 用 pip install 安裝:

    (1)優點:

    可以跨出 Pycharm 環境直接安裝,不限定在哪個環境,甚至原生環境都可以,在雲服務(GCP, AWS)上安裝也都是使中指令居多(讓大家覺得打指令很厲害),所以未來還是得有個大概的使用概念比較好哦!

    (2)缺點:

    對於安裝的路徑、套件名稱、安全性等等不好驗證,之前有些套件會故意取的名稱很像,讓使用者安裝錯誤。

    但功能雖然一致,可以當你在執行使用套件的時候,相關程式內的一些資料可能就會外流,這件事還一度上了資安報告中呢,所以除非很熟或是使用環境不會涉及到個人資料等等的。

    否則會建議使用 Pycharm 提供的工具包去安裝就好囉!

    2. 用 Pycharm工具安裝:

    (1)優點:

    有介面化,可以方便安裝與搜尋相關套件,也可以很方便的切換套件版本號,以及我個人覺得很重要的部分,以 Pycharm 而言,可以快速點進套件網址,確認套件到底是不是真實的套件而不是釣魚套件。

    (2)缺點:

    離開 Pycharm 到其他工具中就可能得適應其他使用方式,而在雲服務中就可能無法使用這模式安裝,這部分我建議可以參考 requirements.txt 的套件管理方式。

    Py 101209161710
    Py 101209161711

    二、導入套件與使用

    套件的導入比較單純,但也分成幾種不同的作法:

    假設我們的 our_main.py 內有:

    def run():
        print("run 1")
    
    
    def run_sec():
        print("sec run")

    我們想從另一份腳本內呼叫該函式就可以是:

    import our_main
    
    if __name__ == '__main__':
        run()  # 結果:  run 1
        run_sec()  # 結果:  sec run
        # 這時候兩個都可以被呼叫,因為我們整份 our_main 內的都要被呼叫
    from our_main import run
    
    if __name__ == '__main__':
        run()  # 結果:  run 1
        # 這時候我們是 call不到 run_sec() 的,因為我們指定只呼叫 run()

    以下以常用的datetime套件做舉例,基本上大原則就是 from xxx(從哪個檔案)import(導入)bbb(哪個函式):

    直接把整個套件包內存在的 function、class 都呼叫進來:

    import datetime
    print(datetime.datetime.now())

    結果:

    2022-06-03 17:34:12.084197

    直接把整個套件包內存在的 function、class 都呼叫進來,但因為有時候套件名稱或是內部函數名稱很長,故可以用這方式縮短後續呼叫名稱。

    最常見的還有 import pandas as pd 這範例:

    iimport datetime as dt
    print(dt.datetime.now())

    結果:

    2022-06-03 17:34:12.084228

    一份 script 內可以有很多函式、參數、class 等等的,但當我們只需要其中一些功能時,就可以指定 Script 名稱,然後導入我們需要的功能函式就好:

    from datetime import datetime
    print(datetime.now())

    結果:

    2022-06-03 17:34:12.084228

    那當然,有了上面的經驗,就更可以將每個需求都結合起來,在套件使用與程式開發上,可讀性也是一大良好的撰寫習慣,所以像是一些很長又長的很像的套件,就很適合這樣處理:

    from datetime import datetime as dt
    print(dt.now()) 

    結果:

    2022-06-03 17:34:12.084228

    補充:

    當需要呼叫的套件在某資料夾內:

    例如: test.py(我們主要要寫的程式腳本)在主目錄底下,但是我們所需要的 def run_sec() 的函式在一份叫做 testrun.py的腳本內,而 testrun.py 在一個名為 run_func 的資料夾內:

    這時候在我們的 test.py 中就要用以下這樣呼叫:

    from run_func.testrun import run_sec

    這樣就可以針對不同資料夾的內容做呼叫囉!

    本系列會從 Python 基本的語法開始介紹,讓沒有程式背景的新手,也能開始用 Python 程式交易。如果你是進階的交易者,可以點擊連結觀看量化通其他 Python 進階文章,認識 爬蟲實用套件資產配置 等內容。

    建議可以照順序閱讀,從零開始學習 Python:

    三、小結:

    大家可以發現不同的呼叫方式都可以達成相同的功能,未來隨著撰寫習慣、使用的套件多寡等等,

    會涉及到更多各類型套件的使用,那這些好的習慣都是為了未來開發時方便囉!有任何問題或錯誤歡迎大家提出來討論!感謝收看!

      電子郵件

      有興趣的主題
      量化交易金融知識台灣股市國內期貨海外期貨虛擬貨幣

      有興趣的量化交易軟體/平台
      不清楚MultiChartsTradingViewPythonXQMT4MT5

      還有什麼詢問的?


      量化通粉絲社群,一起討論程式交易!

      加入LINE社群量化交易討論群」無壓力討論與分享!

      加入臉書社團「程式交易 Taiwan」即時獲取實用的資源!

      RoWay
      RoWay

      多年投資經驗的兩岸三地操盤手,曾任海外資產管理公司交易平台的產品經理、與各外商投資公司合作開發各式交易策略與系統。

      擅長用Python執行資料蒐集、整理、分析與交易;也善於用Multicharts、MetaTrader等系統建構並回測期貨、期權、區塊鏈策略進而完成投資組合管理。

      文章: 28

      發佈留言

      發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *