Date: Thu, 29 Mar 2018 20:17:23 +0300 From: Sergey Akhmatov <sergey@akhmatov.ru> To: freebsd-python@freebsd.org Subject: math/py-numpy + databases/py-MySQLdb compatibility issues Message-ID: <2d4f1843-fc9d-f03d-ab09-8e293e2a4d2a@akhmatov.ru>
next in thread | raw e-mail | index | archive | help
Hello, I've experienced very strange problem with two pyhon modules in one script: Steps to reproduce: Clean 11.1 amd64 installation. pkg repo set to pkg+http://pkg.FreeBSD.org/${ABI}/latest # pkg install py27-numpy py27-MySQLdb $ python2.7 Python 2.7.14 (default, Mar 15 2018, 01:13:31) [GCC 4.2.1 Compatible FreeBSD Clang 4.0.0 (tags/RELEASE_400/final 297347)] on freebsd11 Type "help", "copyright", "credits" or "license" for more information. >>> import MySQLdb >>> import numpy Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/site-packages/numpy/__init__.py", line 142, in <module> from . import add_newdocs File "/usr/local/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module> from numpy.lib import add_newdoc File "/usr/local/lib/python2.7/site-packages/numpy/lib/__init__.py", line 8, in <module> from .type_check import * File "/usr/local/lib/python2.7/site-packages/numpy/lib/type_check.py", line 11, in <module> import numpy.core.numeric as _nx File "/usr/local/lib/python2.7/site-packages/numpy/core/__init__.py", line 26, in <module> raise ImportError(msg) ImportError: Importing the multiarray numpy extension module failed. Most likely you are trying to import a failed build of numpy. If you're working with a numpy git repo, try `git clean -xdf` (removes all files not under version control). Otherwise reinstall numpy. Original error was: /lib/libgcc_s.so.1: version GCC_4.6.0 required by /usr/local/lib/gcc6/libgfortran.so.3 not found --------- BUT, when i import modules in reverse order, it works fine: Python 2.7.14 (default, Mar 15 2018, 01:13:31) [GCC 4.2.1 Compatible FreeBSD Clang 4.0.0 (tags/RELEASE_400/final 297347)] on freebsd11 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> import MySQLdb >>> ---------- I've tried to investigate dependencies and found out that libgfortran.so.3 from gcc6, used by numpy is linked, with libgcc_s.so.1 from gcc6 $ ldd /usr/local/lib/gcc6/libgfortran.so.3 /usr/local/lib/gcc6/libgfortran.so.3: libquadmath.so.0 => /usr/local/lib/gcc6/libquadmath.so.0 (0x801327000) libm.so.5 => /lib/libm.so.5 (0x801566000) libgcc_s.so.1 => /usr/local/lib/gcc6/libgcc_s.so.1 (0x801791000) libc.so.7 => /lib/libc.so.7 (0x800824000) And _mysql.so from py-MySQLdb is linked with libgcc_s.so.1 from base system: $ ldd /usr/local/lib/python2.7/site-packages/_mysql.so /usr/local/lib/python2.7/site-packages/_mysql.so: ... libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x803572000) I have no clue if this could actually cause problem. Could someone please reproduce this behavior and/or give some hints how to investigate further?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2d4f1843-fc9d-f03d-ab09-8e293e2a4d2a>