Сбой Scipy при импорте при вызове из пакета - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь работать с этим пакетом python 3: https://gitlab.com/revaz/pNbody/

После обновления до numpy 1.16.2 у меня возникают некоторые сбои, когда я не знаю, почему они происходят.

Я выполнил чистую переустановку пакета pNbody, и при запуске теста test/ut_test_main.py происходит сбой кода при импорте модуля с именем cosmo из пакета, когда вызывается from scipy import optimize:

Traceback (most recent call last):
  File "./ut_test_main.py", line 63, in <module>
    nb = pn.Nbody(rt1, ftype='gadget')
  File "/home/mivkov/.local/lib/python3.6/site-packages/pNbody-5.0-py3.6-linux-x86_64.egg/pNbody/main.py", line 185, in __init__
    self.find_format(ftype)
  File "/home/mivkov/.local/lib/python3.6/site-packages/pNbody-5.0-py3.6-linux-x86_64.egg/pNbody/main.py", line 334, in find_format
    self.import_check_ftype(formatfile)
  File "/home/mivkov/.local/lib/python3.6/site-packages/pNbody-5.0-py3.6-linux-x86_64.egg/pNbody/main.py", line 278, in import_check_ftype
    mod = __import__(module_name)
  File "/home/mivkov/.local/lib/python3.6/site-packages/pNbody-5.0-py3.6-linux-x86_64.egg/config/formats/gadget.py", line 24, in <module>
    from pNbody import units, ctes, cosmo, thermodyn
File "/home/mivkov/.local/lib/python3.6/site-packages/pNbody-5.0-py3.6-linux-x86_64.egg/pNbody/cosmo.py", line 22, in <module>
    from scipy import optimize
  File "/home/mivkov/.local/lib/python3.6/site-packages/scipy/optimize/__init__.py", line 387, in <module>
    from ._minimize import *
  File "/home/mivkov/.local/lib/python3.6/site-packages/scipy/optimize/_minimize.py", line 28, in <module>
    from ._trustregion_krylov import _minimize_trust_krylov
  File "/home/mivkov/.local/lib/python3.6/site-packages/scipy/optimize/_trustregion_krylov.py", line 2, in <module>
    from ._trlib import (get_trlib_quadratic_subproblem)
  File "/home/mivkov/.local/lib/python3.6/site-packages/scipy/optimize/_trlib/__init__.py", line 1, in <module>
    from ._trlib import TRLIBQuadraticSubproblem
  File "__init__.pxd", line 918, in init scipy.optimize._trlib._trlib
RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject

Что меня действительно смущает, так это тот факт, что когда я импортирую модуль cosmo в другой скрипт, все работает нормально, как, например, это делается в файле test/ut_test_cosmo.py в репозитории.Это прекрасно работает.

Также, когда я просто запускаю python3 в своем терминале и пытаюсь импортировать тот же модуль scipy, который вызывает ошибку, кажется, что все работает нормально:

Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from scipy import optimize
>>> from scipy.optimize import *

работает безотказно.

Я не знаю, где искать ошибку, и я буду рад любым подсказкам.Я подтвердил, что всегда вызываю одни и те же файлы scipy (версия 1.2.1) и numpy, печатая numpy.__file__ и scipy.__file, и теперь у меня совершенно нет идей.

РЕДАКТИРОВАТЬ: НОВАЯ ИНФОРМАЦИЯ

Я сделал новый virtualenv и установил все (numpy, scipy, pNbody и его зависимости) с нуля.Проблема все еще сохраняется с numpy 1.16, но, похоже, работает с numpy 1.15.

Все еще не знаю, где искать эту ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...