Buffer_ is not a symbol name prefix used by python. readelf -a ./libpython2.7/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 | grep PyBuffer_ 0000004e2b08 037400000006 R_X86_64_GLOB_DAT 0000000000540a40 PyBuffer_Type + 0 408: 0000000000175c90 381 FUNC GLOBAL DEFAULT 12 PyBuffer_FromReadWriteObj 416: 0000000000175c10 122 FUNC GLOBAL DEFAULT 12 PyBuffer_FromMemory 816: 0000000000175960 381 FUNC GLOBAL DEFAULT 12 PyBuffer_FromObject 884: 0000000000540a40 392 OBJECT GLOBAL DEFAULT 23 PyBuffer_Type 889: 0000000000052260 135 FUNC GLOBAL DEFAULT 12 PyBuffer_GetPointer 1024: 0000000000052170 82 FUNC GLOBAL DEFAULT 12 PyBuffer_Release 1084: 00000000001758c0 154 FUNC GLOBAL DEFAULT 12 PyBuffer_New 1334: 000000000005ad00 297 FUNC GLOBAL DEFAULT 12 PyBuffer_FromContiguous 1345: 0000000000175b90 122 FUNC GLOBAL DEFAULT 12 PyBuffer_FromReadWriteMem 1382: 00000000000522f0 678 FUNC GLOBAL DEFAULT 12 PyBuffer_IsContiguous 1412: 000000000005ae30 297 FUNC GLOBAL DEFAULT 12 PyBuffer_ToContiguous 1472: 00000000000521d0 132 FUNC GLOBAL DEFAULT 12 PyBuffer_FillContiguousSt 1520: 0000000000053640 182 FUNC GLOBAL DEFAULT 12 PyBuffer_FillInfo
If it was PyBuffer_ then maybe it would have come from python itself. ujson appears to be compiled extension, did you missbuilt it? And it itself defines this FASTCALL_ATTR INLINE_PREFIX void FASTCALL_MSVC Buffer_AppendShortHexUnchecked (char *outputOffset, unsigned short value) { *(outputOffset++) = g_hexChars[(value & 0xf000) >> 12]; *(outputOffset++) = g_hexChars[(value & 0x0f00) >> 8]; *(outputOffset++) = g_hexChars[(value & 0x00f0) >> 4]; *(outputOffset++) = g_hexChars[(value & 0x000f) >> 0]; } Which is possibly now inlined, instead of being an exported symbol? Compiler can choose to do that. BTW. python-ujson is available on ubuntu bionic $ sudo apt install python-ujson $ python2 -c 'import ujson; print ujson' <module 'ujson' from '/usr/lib/python2.7/dist-packages/ujson.x86_64-linux-gnu.so'> I am afraid this is a bug with pip's ujson, not with ubuntu's python2. The one that we provide is the same version 1.35. Maybe you can remove your self-built / pip install ujson and install our distro provided one instead with sudo apt install python-ujson? ** Changed in: python2.7 (Ubuntu) Status: Confirmed => Invalid -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to python2.7 in Ubuntu. https://bugs.launchpad.net/bugs/1856753 Title: python 2.7.17-1~18.04 causes ImportError in ujson.so Status in python2.7 package in Ubuntu: Invalid Bug description: With python 2.7.17, ujson==1.35 does not install from PyPI properly. This was not a problem with 2.7.15-4ubuntu4~18.04.2. The root cause is likely during the `bdist_wheel` operation, as a whl built with python 2.7.15 will install and function under 2.7.17. Steps to reproduce are as follows; I have been reproducing this in the ubuntu/bionic Docker container: apt-get update && apt-get -y install python-pip python2.7-dev pip install ujson python -c "import ujson" The resulting error is: ImportError: /usr/local/lib/python2.7/dist-packages/ujson.so: undefined symbol: Buffer_AppendShortHexUnchecked A diff of dpkg-query -W between working and failing containers follows. (this is from the full environment, not the MCVE above -- therefore unrelated packages are shown in the diff). --- packages.ok 2019-12-17 13:31:58.782715627 -0600 +++ packages.fail 2019-12-17 13:28:36.060153358 -0600 @@ -34,8 +34,8 @@ gcc-7-base:amd64 7.4.0-1ubuntu1~18.04.1 gcc-8-base:amd64 8.3.0-6ubuntu1~18.04.1 gir1.2-glib-2.0:amd64 1.56.1-1 -git 1:2.17.1-1ubuntu0.4 -git-man 1:2.17.1-1ubuntu0.4 +git 1:2.17.1-1ubuntu0.5 +git-man 1:2.17.1-1ubuntu0.5 gnupg 2.2.4-1ubuntu1.2 gnupg-l10n 2.2.4-1ubuntu1.2 gnupg-utils 2.2.4-1ubuntu1.2 @@ -150,10 +150,10 @@ libpython-all-dev:amd64 2.7.15~rc1-1 libpython-dev:amd64 2.7.15~rc1-1 libpython-stdlib:amd64 2.7.15~rc1-1 -libpython2.7:amd64 2.7.15-4ubuntu4~18.04.2 -libpython2.7-dev:amd64 2.7.15-4ubuntu4~18.04.2 -libpython2.7-minimal:amd64 2.7.15-4ubuntu4~18.04.2 -libpython2.7-stdlib:amd64 2.7.15-4ubuntu4~18.04.2 +libpython2.7:amd64 2.7.17-1~18.04 +libpython2.7-dev:amd64 2.7.17-1~18.04 +libpython2.7-minimal:amd64 2.7.17-1~18.04 +libpython2.7-stdlib:amd64 2.7.17-1~18.04 libpython3-dev:amd64 3.6.7-1~18.04 libpython3-stdlib:amd64 3.6.7-1~18.04 libpython3.6:amd64 3.6.9-1~18.04 @@ -249,9 +249,9 @@ python-six 1.11.0-2 python-wheel 0.30.0-0.2 python-xdg 0.25-4ubuntu1 -python2.7 2.7.15-4ubuntu4~18.04.2 -python2.7-dev 2.7.15-4ubuntu4~18.04.2 -python2.7-minimal 2.7.15-4ubuntu4~18.04.2 +python2.7 2.7.17-1~18.04 +python2.7-dev 2.7.17-1~18.04 +python2.7-minimal 2.7.17-1~18.04 python3 3.6.7-1~18.04 python3-asn1crypto 0.24.0-1 python3-cffi-backend 1.11.5-1 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/python2.7/+bug/1856753/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp