https://bugs.documentfoundation.org/show_bug.cgi?id=150654

            Bug ID: 150654
           Summary: wrong python config variable EXT_SUFFIX for macos
           Product: LibreOffice
           Version: 7.4.0.0 beta1+
          Hardware: All
                OS: macOS (All)
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: LibreOffice
          Assignee: libreoffice-bugs@lists.freedesktop.org
          Reporter: saikee2...@gmail.com

Description:
When I use uno to write a python program to communicate with a Libreoffice
running session on Macos, I need to run the python shipped with Libreoffice in
/Applications/LibreOffice.app/Contents/Resources/python

So, I need to install the required python module, e.g., the numpy.  It failed
to import because the EXT_SUFFIX is wrong.

What I did was /Applications/LibreOffice.app/Contents/Resources/python -m pip
install numpy
The library is installed, but the name of some C-extensions failed.

The problem is, those C-extensions are named with .cpython-37m-darwin.so
suffix, e.g.,
/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/lib/python3.7/site-packages/numpy/core/_multiarray_umath.cpython-37m-darwin.so
But if you run following within the Libreoffice shipped python:

import sysconfig
sysconfig.get_config_var("EXT_SUFFIX")

it says '.cpython-3.7m.so'

Therefore, it failed.  If I use python installed externally, this same command
return '.cpython-37m-darwin.so' and the import succeeded.

But I can't change the config variable "EXT_SUFFIX", they are set in compile
time, can you help to look at the error and see if my understanding is correct
?

I tested the same in both Intel and M1 CPU, both suffer from the same problem.

Steps to Reproduce:
1./Applications/LibreOffice.app/Contents/Resources/python -m pip install numpy
2./Applications/LibreOffice.app/Contents/Resources/python
3.import numpy

Actual Results:
Traceback (most recent call last):
  File
"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/lib/python3.7/site-packages/numpy/core/__init__.py",
line 22, in <module>
    from . import multiarray
  File
"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/lib/python3.7/site-packages/numpy/core/multiarray.py",
line 12, in <module>
    from . import overrides
  File
"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/lib/python3.7/site-packages/numpy/core/overrides.py",
line 7, in <module>
    from numpy.core._multiarray_umath import (
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File
"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/lib/python3.7/site-packages/numpy/__init__.py",
line 150, in <module>
    from . import core
  File
"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/lib/python3.7/site-packages/numpy/core/__init__.py",
line 48, in <module>
    raise ImportError(msg)
ImportError:

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

We have compiled some common reasons and troubleshooting tips at:

    https://numpy.org/devdocs/user/troubleshooting-importerror.html

Please note and check the following:

  * The Python version is: Python3.7 from
"/Applications/LibreOffice.app/Contents/Resources/../Frameworks/LibreOfficePython.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/LibreOfficePython"
  * The NumPy version is: "1.21.4"

and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.

Original error was: No module named 'numpy.core._multiarray_umath'

Expected Results:
Should be no error after import numpy


Reproducible: Always


User Profile Reset: No



Additional Info:
import sysconfig
sysconfig.get_config_var("EXT_SUFFIX")

Shows wrong extension for the C-extensions

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to