Re: axiom vs. mac os x and sqlite 3

Bob Ippolito <[email protected]> Mon, 20 Feb 2006 15:44:53 -0800
Newsgroups gmane.comp.python.quotient.dev
Message-ID <[email protected]>
On Feb 20, 2006, at 1:02 PM, Phil Christensen wrote:

> so, i'm starting to sink my fangs into axiom, but i seem to be  
> having some kind of dependency problem. when my app tries to import  
> one of the axiom modules, i get:
>
>
> Traceback (most recent call last):
>   File "src/lifeline-server.py", line 6, in ?
>     import tasks
>   File "/Users/phil/Workspace/lifeline/src/tasks.py", line 3, in ?
>     from axiom import store, item, attributes
>   File "/Library/Frameworks/Python.framework/Versions/2.4/lib/ 
> python2.4/site-packages/axiom/store.py", line 26, in ?
>     from pysqlite2 import dbapi2 as sqlite
>   File "build/bdist.darwin-8.2.0-Power_Macintosh/egg/pysqlite2/ 
> dbapi2.py", line 32, in ?
>   File "build/bdist.darwin-8.2.0-Power_Macintosh/egg/pysqlite2/ 
> _sqlite.py", line 7, in ?
>   File "build/bdist.darwin-8.2.0-Power_Macintosh/egg/pysqlite2/ 
> _sqlite.py", line 6, in __bootstrap__
> ImportError: Failure linking new module: /Users/phil/.python-eggs/ 
> pysqlite-2.1.3-py2.4-macosx-10.4-ppc.egg-tmp/pysqlite2/_sqlite.so:  
> Symbol not found: _sqlite3_transfer_bindings
>   Referenced from: /Users/phil/.python-eggs/pysqlite-2.1.3-py2.4- 
> macosx-10.4-ppc.egg-tmp/pysqlite2/_sqlite.so
>   Expected in: dynamic lookup
>
>
> now, when i first installed pysqlite, i didn't have the sqlite3  
> library installed. i've since installed sqlite version 3.3.4, and  
> reinstalled pysqlite, but i get the same error.
>
> the only thing i can figure is that since sqlite was installed in / 
> usr/local/lib, my python install is somehow missing it.
>
> incidentally, i'm running bob's 2.4.1 package...
>
> any help on this would be greatly appreciated...

That error means one of two things:
1. _sqlite.so isn't linked to sqlite at all (the link step didn't do - 
lsqlite3)
2. _sqlite.so is linked to an incorrect sqlite, and is trying to use  
a function that isn't available in that particular version.

My guess is 1.  You can take a look by watching what distutils does  
when you build it, and taking a look at the otool -L output for  
_sqlite.so when it's done.

Either way you're going to have to tweak the setup.py in some way to  
fix it.  Personally, I haven't had this problem, so I don't know what  
the issue you're having is.

-bob