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

Christian Heimes christian at python.org
Wed Jul 29 16:24:15 EDT 2020


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/okimfputl.new/guicom.py", line 66, in <module>
>         import pyscand
>     ImportError: /usr/libexec/okimfpdrv/pyscand.so: 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 pyscand.so 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.

Christian



More information about the Python-list mailing list