On May 5, 2005, at 2:20 PM, Bob Ippolito wrote: > > On May 5, 2005, at 12:55 PM, Gary Poster wrote: > > >> Using Python 2.4.1 compiled on Tiger. This symptom did not occur on >> Panther. >> >> Running my app using one command makes an import of libxml2 succeed: >> all test pass, including a lot of code that relies on libxml2. >> >> Running it with another command makes it fail: >> >> *** ImportError: Failure linking new module: /Users/gary/jic/opt/ >> libxml2/lib/python/libxml2mod.so: Symbol not found: >> _xmlTextReaderByteConsumed >> Referenced from: /Users/gary/jic/opt/libxml2/lib/python/ >> libxml2mod.so >> Expected in: flat namespace >> >> I've put a pdb before the import to examine the two environments. >> I've checked sys.path, os.environ, and sys.getdlopenflags() >> (recommended by a coworker) and gotten results that were either >> identical or that (in the case of sys.path) I munged until they were >> identical, and still one import works, the other doesn't. >> > > It sounds like libxml2 (or the Python extension) uses the linker > option flat_namespace .. that's bad. -flat_namespace has been > deprecated since 10.2 (maybe earlier) and shouldn't be used for > anything. I can't help you though, I don't use libxml2 so I don't > know the specifics of why its build/link procedure is broken.
More specifically, after looking again, "libxml2mod.so" isn't explicitly linking to libxml2 (and may also be using the deprecated - flat_namespace).. Somewhere in your "one command" it's importing something that does explicitly link to libxml2, but your "another command" does not have that side-effect that band-aids the fact that "libxml2mod.so" is linked incorrectly. The solution to this specific problem is to fix whatever builds "libxml2mod.so" so that it links against libxml2 (-lxml2, or adding it to the distutils library list, etc.).. but I have a feeling that's not the ONLY thing wrong with it. It "smells" like one of those horribly broken Python extensions that uses autoconf instead of distutils. -bob _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig