Привет,
Когда я пишу: "from numpy import *" из кода и выполняю код, то встречаю следующую ошибку:
Traceback (most recent call last):
Файл "rgbtoyuv.py", строка 2, в
импортировать numpy как np
Файл "/usr/local/lib/python3.5/site-packages/numpy-1.11.2-py3.5-linux-x86_64.egg/numpy/__init__.py", строка 163, в
из . случайный импорт
Файл "/usr/local/lib/python3.5/site-packages/numpy-1.11.2-py3.5-linux-x86_64.egg/numpy/random/__init__.py", строка 99, в
из .mtrand import *
ImportError: /usr/local/lib/python3.5/site-packages/numpy-1.11.2-py3.5-linux-x86_64.egg/numpy/random/mtrand.cpython-35m-x86_64-linux-gnu.so : неопределенный символ: PyFPE_jbuf
Платформа ubuntu16.04 x86_64
версия python: 3.5.2
numpy version: 1.11.2 и попробуйте версию: 1.9.0 , но установить не удалось.
Пожалуйста, помогите мне найти причину, большое спасибо.
Откуда у тебя тупица? Кстати, подобные вопросы следует задавать в списке рассылки, проблемы с github связаны с ошибками
Мне кажется, что это сообщение об ошибке?
Некоторые подсказки относительно того, что здесь происходит:
CPython имеет дополнительный код для перехвата SIGFPE и преобразования его в исключение. Чтобы использовать его, вы оборачиваете вычисления с плавающей запятой на уровне C в PyFPE_START_PROTECT
/ PyFPE_END_PROTECT
. Если CPython был скомпилирован с --with-fpectl
(что соответствует наличию #define WANT_SIGFPE_HANDLER
в pyconfig.h
), то PyFPE_jbuf
экспортируется как глобальный символ, и эти макросы расширяются в некоторые умные вещи, которые ссылаются на этот символ. Если CPython был скомпилирован без --with-fpectl
, то символ не экспортируется, и макросы перестают работать. Это означает, что CPython фактически имеет другой несовместимый ABI в зависимости от того, был ли он скомпилирован с --with-fpectl
или без него. Радость.
(Похоже, вы можете проверить, какой у вас тип CPython, выполнив import fpectl
- если это удастся, у вас есть --with-fpectl
CPython.)
Сам Numpy не использует эти макросы. Но автогенерируемый код Cython их использует.
Вывод: если вы скомпилируете модуль Cython, используя CPython, который был построен с --with-fpectl
, он выйдет из строя, когда вы попытаетесь запустить его на CPython, который был построен без --with-fpectl
.
Быстрая проверка некоторых распространенных сборок Linux CPython, чтобы узнать, какие из них используют --with-fpectl
:
@ kevinzhai80 : Вы случайно
Привет, njsmith,
Спасибо за информацию, проблема решена.
Спасибо njsmith. Также: Ubuntu 17.10 Artful no . Обновление вызвало ошибку:
$ питон
Python 2.7.14 (по умолчанию, 23 сентября 2017 г., 22:06:14)
[GCC 7.2.0] в linux2
Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия».
импорт fpectl
Отслеживание (последний вызов последний):
Файл "", строка 1, в
ImportError: нет модуля с именем fpectl
Самый полезный комментарий
Мне кажется, что это сообщение об ошибке?
Некоторые подсказки относительно того, что здесь происходит:
CPython имеет дополнительный код для перехвата SIGFPE и преобразования его в исключение. Чтобы использовать его, вы оборачиваете вычисления с плавающей запятой на уровне C в
PyFPE_START_PROTECT
/PyFPE_END_PROTECT
. Если CPython был скомпилирован с--with-fpectl
(что соответствует наличию#define WANT_SIGFPE_HANDLER
вpyconfig.h
), тоPyFPE_jbuf
экспортируется как глобальный символ, и эти макросы расширяются в некоторые умные вещи, которые ссылаются на этот символ. Если CPython был скомпилирован без--with-fpectl
, то символ не экспортируется, и макросы перестают работать. Это означает, что CPython фактически имеет другой несовместимый ABI в зависимости от того, был ли он скомпилирован с--with-fpectl
или без него. Радость.(Похоже, вы можете проверить, какой у вас тип CPython, выполнив
import fpectl
- если это удастся, у вас есть--with-fpectl
CPython.)Сам Numpy не использует эти макросы. Но автогенерируемый код Cython их использует.
Вывод: если вы скомпилируете модуль Cython, используя CPython, который был построен с
--with-fpectl
, он выйдет из строя, когда вы попытаетесь запустить его на CPython, который был построен без--with-fpectl
.Быстрая проверка некоторых распространенных сборок Linux CPython, чтобы узнать, какие из них используют
--with-fpectl
:@ kevinzhai80 : Вы случайно