Ошибка сегментации при импорте numpy и вызове библиотеки Fortran - PullRequest
0 голосов
/ 17 сентября 2018

Это странно.

Я использую Cython для создания пакета Python (назовем его mypackage), который оборачивает внешнюю библиотеку (externallib).externallib написано на Фортране, но имеет интерфейсную библиотеку, написанную на C. Я использую эту интерфейсную библиотеку C для доступа к externallib из Cython.

Разработка идет очень хорошо, вплоть до моментакогда я импортировал numpy или любой другой пакет, зависящий от numpy (например, pint, matplotlib, pandas и т. д.), в модуль mypackage.core (файл .pyx).Я только импортирую эти пакеты и даже не использую их.Это приводит к ошибке сегментации.

Current thread 0x00007f02925ee740 (most recent call first):
  File "build/temp/mypackage/core_test.py", line 191 in _test_runner
  File "build/temp/mypackage/core_test.py", line 291 in test__str__
  File "/home/user/anaconda3/envs/mypackage-build-python3.6.5/lib/python3.6/unittest/case.py", line 605 in run
  File "/home/user/anaconda3/envs/mypackage-build-python3.6.5/lib/python3.6/unittest/case.py", line 653 in __call__
  File "/home/user/anaconda3/envs/mypackage-build-python3.6.5/lib/python3.6/unittest/suite.py", line 122 in run
  File "/home/user/anaconda3/envs/mypackage-build-python3.6.5/lib/python3.6/unittest/suite.py", line 84 in __call__
  File "/home/user/anaconda3/envs/mypackage-build-python3.6.5/lib/python3.6/unittest/suite.py", line 122 in run
  File "/home/user/anaconda3/envs/mypackage-build-python3.6.5/lib/python3.6/unittest/suite.py", line 84 in __call__
  File "/home/user/anaconda3/envs/mypackage-build-python3.6.5/lib/python3.6/unittest/runner.py", line 176 in run
  File "/home/user/anaconda3/envs/mypackage-build-python3.6.5/lib/python3.6/unittest/main.py", line 256 in runTests
  File "/home/user/anaconda3/envs/mypackage-build-python3.6.5/lib/python3.6/unittest/main.py", line 95 in __init__
  File "build/temp/mypackage/core_test.py", line 311 in <module>
../build/scripts/build-package-linux.sh: line 151: 22796 Segmentation fault      (core dumped) python3 build/temp/mypackage/core_test.py

Ошибка сегментации возникает, когда я вызываю подпрограмму вычисления в externallib, после того как я несколько раз вызывал ее для предоставления входных данных для расчета.

Я знаю, что Numpy также построен с Fortran, C и Cython под капотом.Есть ли что-то очевидное, что я должен искать для обеспечения совместимости между Numpy и другими внешними библиотеками C / Fortran?Что может быть причиной ошибки сегментации?

Спасибо за помощь.

...