秀丸マクロ.net

Pythonで作った自作ライブラリや独自ライブラリ等の読み込み

  • 概要

    Pythonライブラリについては、マクロを実行しているフォルダ内にあるものは、
    importで読み込むことが出来ます。

    それ以外のフォルダにあるものでも、

    import sys
    sys.path.append("...独自のフォルダのパス...")
    

    といった方法でライブラリの検索対象を増やすことが出来ます。
    これは通常のPythonの挙動そのままです。

    「sys.path.append」することで、通常のPythonライブラリだけではなく、
    C#などで制作したアセンブリ(.dll)を検索するパスも追加することが出来ますが、
    それについては別途、次の章にて解説しています。

  • 一番簡単なサンプル

    簡単なサンプルをみていきましょう。
    「test.mac」ファイルから「hmTest.py」ファイルを読み込み、
    そのpyファイルから、さらに別の hmSubTest.py ファイルを import しています。

    test.mac
    #PY = loaddll( hidemarudir + @"\hmPy.dll" );
    
    #r = dllfuncw(#PY, "DoFile", currentmacrodirectory + "/hmTest.py");
    
    freedll(#PY);
    
    hmTest.py
    import hmSubTest
    
    hm.debuginfo("hmTest.py通過")
    
    def DestroyScope():
        hm.debuginfo(hm.Macro.Var["filename"]);
    
    hmSubTest.py
    import hmSubTest
    
    hm.debuginfo("hmSubTest通過")    
    

    これら「test.mac」「hmTest.py」「hmSubTest.py」の3つのファイルを同じフォルダに入れて、
    test.macを実行すれば、うまく機能します。