Numpy: ошибка импорта из numpy

Созданный на 24 дек. 2016  ·  4Комментарии  ·  Источник: numpy/numpy

Привет,
Когда я пишу: "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 , но установить не удалось.

Пожалуйста, помогите мне найти причину, большое спасибо.

Самый полезный комментарий

Мне кажется, что это сообщение об ошибке?

Некоторые подсказки относительно того, что здесь происходит:

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 :

  • Manylinux: нет
  • Текущее тестирование Debian: да
  • Ubuntu 12.04: да
  • Ubuntu 16.04: да
  • Конда: нет (проверено 2.7 и 3.5)
  • Fedora 25: нет

@ kevinzhai80 : Вы случайно

Все 4 Комментарий

Откуда у тебя тупица? Кстати, подобные вопросы следует задавать в списке рассылки, проблемы с 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 :

  • Manylinux: нет
  • Текущее тестирование Debian: да
  • Ubuntu 12.04: да
  • Ubuntu 16.04: да
  • Конда: нет (проверено 2.7 и 3.5)
  • Fedora 25: нет

@ 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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги