New submission from Antoine Pitrou: When a C extension is built (using distutils) with a shared library Python, it cannot be loaded with an otherwise identical statically linked Python. The other way round works fine. Trivial example using the _ssl module:
>>> import sys >>> sys.path.insert(0, >>> '/home/antoine/cpython/shared/build/lib.linux-x86_64-3.5/') >>> import _ssl Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory This is probably because of an additional -L flag that is passed when linking a C extension with a shared library Python. I don't think the flag is useful under Linux (or perhaps under any other OS at all), since the relevant symbols are already loaded when the interpreter tries to load the C extension. (AFAIK, systems notorious for providing shared library Pythons are RedHat-alike systems, while Debian/Ubuntu provide statically linked Pythons) ---------- components: Library (Lib) messages: 218806 nosy: dstufft, eric.araujo, loewis, ncoghlan, pitrou priority: normal severity: normal status: open title: extension built with a shared python cannot be loaded with a static python type: enhancement versions: Python 3.5 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue21536> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com