import custom module from plugin



  • On 17/10/2016 at 07:09, xxxxxxxx wrote:

    Hi all,

    This seems like a basic question but I couldn't find any answers here on the forum (correct me if I'm wrong). 
    I'm writing a shader plugin that will reference another module with all the shader formulas. Is there a way to access this module (formulas.py) when it's in the same folder as the plugin? If I put it there, cinema complains: "ImportError: No module named formulas". 
    If I put it in the packages dir it does find it, but I would like to keep em together. Here's an example of the directory structure I would like to achieve:

    +plugins
        +myshader
            myshader.pyp
            formulas.py         (also tried .pyp, no succes)

    I've tried adding an __init__.py, but then cinema doesn't even find the plugin itself anymore.
    Any help would be appreciated!

    Kind regards,

    Hermen



  • On 17/10/2016 at 08:52, xxxxxxxx wrote:

    Hi, Hermen.
    I'm not really sure about your question, but have you seen this thread?
    https://plugincafe.maxon.net/topic/8229/10727_best-practice-for-imports



  • On 17/10/2016 at 12:18, xxxxxxxx wrote:

    Hi dmitry,

    To be honest, no, I didn't find that one. But if it's that complicated, I'll guess I leave it just where it is.
    But thanks for the find, anyway!

    regards,

    Hermen



  • On 25/10/2016 at 05:04, xxxxxxxx wrote:

    Hello All,
    I tried to grasp Niklas' code, but I am afraid it is beyond me. But MAXON's Python SDK tells us we can use a simple:

    dir, file = os.path.split(__file__)

    which is certainly more pythonic. And pure python. And only one line...

    So I thought I'd post this here, more so because the post above this one is about the same topic, as dmitry pointed out😊

    Regards,

    Hermen



  • On 25/10/2016 at 07:33, xxxxxxxx wrote:

    Hi Hermenator, what's hard to grasp on the code? You don't need to understand what's happening 
    in the localimport class if you don't want to.

    I advise against manually appending paths to sys.path unless you want to make the module available
    to the whole Python ecosystem.



  • On 25/10/2016 at 10:09, xxxxxxxx wrote:

    Hi Niklas,

    Well, I had a particular hard time on the second line:
    "eJydGctu20bwrq8gkAPJmKXjBr0IZVCkSIGiRQ5B0UMFgqDIpbw1RRK7q9SykX/vzOyTItU4vVjL3ZnZeT/W/DiNQkXNOJ2zQz/"
    😂 (Just kidding)

    But I must say I was mistaken. The page in the SDK refers to a resource folder, ie for bitmaps and other resources. Actually importing a module this way is not possible.

    Reason I considered it too much effort is because while still in development I am only going to be using this on my own computer. If time comes to publish this plugin, I think your approach makes sense. And you have even taken the effort of making pre-minified versions, so thank you for that😉

    Regards,

    Hermen


Log in to reply