Porting Python2 C-API/Swig based modules to Python 3

casevh casevh at gmail.com
Wed Feb 23 18:58:28 CET 2011


On Feb 23, 8:54 am, Adam Pridgen <adam.prid... at thecoverofnight.com>
wrote:
> Hello,
>
> I am trying to get a compiled module to work with Python3.  The code I
> am compiling was originally intended to be used in a Python 2.*
> environment, but I updated all the Python 2.* elements and the swig
> commands used by the setup.py script.  I got the library to
> successfully compile, but I am getting the following errors on import
> (below).  I am not sure how to trouble shoot this problem, and the
> fact that only one symbol (_PyCObject_FromVoidPtr) is missing is
> disconcerting.  I Googled some, but the symbol mentioned only showed
> up in a few posts, where linking was an issue.  I have also gone
> through the setup.py script and explicitly defined all the library
> paths.
>
> My questions:
>
> - Has anyone ever ported Python 2* modules/libs to Python 3 that rely
> on swig, and are there some changes in the C-API/swig I need to be
> looking for to make this port successful?
>
> - Does anyone have any advice/insght about how I can troubleshoot,
> diagnose, and resolve this issue?
>
> Thanks in advance,
>
> -- Adam
>
> <error message>
>
> 0:pylibpcap-0.6.2$ python3
> Python 3.2 (r32:88452, Feb 20 2011, 11:12:31)
> [GCC 4.2.1 (Apple Inc. build 5664)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.>>> import pcap,py
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packa­ges/pcap.py",
> line 25, in <module>
>     _pcap = swig_import_helper()
>   File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packa­ges/pcap.py",
> line 21, in swig_import_helper
>     _mod = imp.load_module('_pcap', fp, pathname, description)
> ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site­-packages/_pcapmodule.so,
> 2): Symbol not found: _PyCObject_FromVoidPtr
>   Referenced from:
> /Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packag­es/_pcapmodule.so
>   Expected in: flat namespace
>  in /Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packag­es/_pcapmodule.so
>
>
>
> >>> ^D- Hide quoted text -
>
> - Show quoted text -

This is a change in the C-API in 3.2. See http://bugs.python.org/issue5630

casevh



More information about the Python-list mailing list