Skip to content

pyconvert_add_rule must be executed before using pyimport in __init__() #500

Closed
@laggvar

Description

@laggvar

Affects: PythonCall

Description:

It took me ages to figure out why the following did not manage to add a conversion rule, despite it following the documentation here and here

const mylib = pynew()
function __init__()
    pycopy!(mylib, pyimport("mylib")
    pyconvert_add_rule(".......", T, _func)
end

It seems swapping the order solves the issue

const mylib = pynew()
function __init__()
    pyconvert_add_rule(".......", T, _func)
    pycopy!(mylib, pyimport("mylib")
end

i.e. the conversion rule must be added before pyimport is called. I guess it is too late to add the rules once the python executable has started? Perhaps this should be clarified in the documentation?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions