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
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1856753

Title:
  python 2.7.17-1~18.04 causes ImportError in ujson.so

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python2.7/+bug/1856753/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to