Я пытаюсь работать с этим пакетом 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.
Все еще не знаю, где искать эту ошибку.