[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

How to diagnose import error when importing from .so file?

On 29/07/2020 15.34, Chris Green wrote:
> I have some Python Gtk 2 code I'm trying to convert to Python
> pygobject GTK 3.
> However I'm stuck on an import statement that fails:-
>     import pyscand
> The error message is:-
>     File "/usr/libexec/", line 66, in <module>
>         import pyscand
>     ImportError: /usr/libexec/okimfpdrv/ undefined symbol: _Py_ZeroStruct
> pyscand is a .so file so I fear I may be a bit stuffed unless I can
> find the source code for it.  However any other ideas would be most
> welcome.
> In fact looking for this error it seems that is is a Python version
> mismatch error and I need to recompile against Python 3. Is
> there no way to sort of convert it to Python 3 without having the
> source?

You are right. The extension module is compiled for Python 2.
_Py_ZeroStruct is only available in Python 2. You need the C code for
the extension module. and possibly even modify the C code to make the
extension work with Python 3.