[PyQt] [pyqtdeploy] cpython library dynamic loading problem.

Phil Thompson phil at riverbankcomputing.com
Fri Dec 7 09:15:57 GMT 2018


On 6 Dec 2018, at 6:02 pm, José Antonio Fernández Fernández <aullasistemas at gmail.com> wrote:
> 
> Good afternoon.
> 
> I'm having a problem that I can not solve, to see if someone can help me:
> 
> I try to shuffle psycopg2, which contains the file Cpython _psycopg.cpython-37.so, this file has been compiled in static mode.
> 
> When I start, I get the following error:
> 
> Traceback (most recent call last):
>   File ": /pineboolib/utils.py", line 534, in checkDependencies
>   File ": / importlib / __ init__.py", line 127, in import_module
>   File "bootstrap.py", line 1006, in _gcd_import
>   File "bootstrap.py", line 983, in _find_and_load
>   File "bootstrap.py", line 967, in _find_and_load_unlocked
>   File "bootstrap.py", line 677, in _load_unlocked
>   File "bootstrap_external.py", line 728, in exec_module
>   File "bootstrap.py", line 219, in _call_with_frames_removed
>   File "/home/aulla/repos/github/pineboo/builds/linux-64/extra_libs/psycopg2/__init__.py", line 50, in <module>
>     from psycopg2._psycopg import (# noqa
>   File "bootstrap.py", line 983, in _find_and_load
>   File "bootstrap.py", line 967, in _find_and_load_unlocked
>   File "bootstrap.py", line 670, in _load_unlocked
>   File "bootstrap.py", line 583, in module_from_spec
>   File "bootstrap_external.py", line 1043, in create_module
>   File "bootstrap.py", line 219, in _call_with_frames_removed
> ImportError: /home/aulla/repos/github/pineboo/builds/linux-64/extra_libs/psycopg2/_psycopg.cpython-37.so: undefined symbol: PyFloat_Type
> 
> 
> The first thing I thought was that it was a dynamic compilation. Compile a static version, but these symbols remain unresolved:
> 
> ldd -r _psycopg.cpython-37.so 
>     linux-vdso.so.1 (0x00007fff4f3c2000)
>     libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f0eafa27000)
>     libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0eaf83d000)
>     /lib64/ld-linux-x86-64.so.2 (0x00007f0eafadf000)

ldd does not operate on static libraries so your .so file must be a dynamic library.

Phil



More information about the PyQt mailing list