«недопустимая операция»
Это обычно означает, что при выполнении кода, скомпилированный для более способного процессора (например Haswell) на менее способный один (например, Ivy Bridge).
Импорт библиотеки urllib3, кажется, вызывает проблемы.
На моей машине Ubuntu, import urllib3
нагрузки libssl.so.1.0.0
, libcrypto.so.1.0.0
и _ssl.x86_64-linux-gnu.so
. Эти крипто-библиотеки, скорее всего, будут скомпилированы с AVX, AVX2 и т. Д. Инструкциями, которые ваш процессор может не поддерживать.
лучший рабочий процесс для диагностики эти проблемы
Ваш первый шаг должен быть, чтобы выяснить, какая команда является причиной SIGILL
. Для этого запустите:
gdb python
(gdb) run
>>> import urllib3 # do whatever is necessary to reproduce SIGILL
(gdb) x/i $pc
(gdb) info sym $pc
Последние две команды выше должен дать вам инструкцию, которая вызывает SIGILL
, и библиотеку, в которой используется эта команда. Как только вы узнаете, что это за инструкция, вы можете убедиться, что ваш процессор не поддерживает ее, и обратитесь к дистрибьютору «виноватой» библиотеки, чтобы получить другую компиляцию (без использования инструкций, которые не поддерживаются вашим процессором).
Просьба указать минимальное, проверяемое, полное пример, чтобы продемонстрировать вашу проблему (http://stackoverflow.com/help/mcve) –