Пожалуйста, смотрите отчет github для более подробной информации.
Оказывается, что statsmodels зависит от нескольких пакетов, устанавливаемых перед ним, так что он может использовать их для компиляции своих собственных модулей. Я не совсем понимаю зависимости или почему они не указаны в настройках пакета, но это решает проблему для меня.
Если вам нужно очистить то, что у вас уже есть, вы можете удалить с помощью следующего:
pip3 uninstall statsmodels
затем убедитесь, что ваши зависимости есть
pip3 install numpy scipy patsy pandas
затем, только после того, как эти четыре будут установлены первыми:
pip3 install statsmodels
Затем перейдите к импорту и коду.
==== дополнительно / попеременно =====
В большинстве случаев рекомендуется использовать virtualenv . Это также позволит вам создавать свои собственные среды, в которых вы можете управлять своими собственными библиотеками. Вы можете создавать все, что хотите, и называть их как угодно для каждого проекта. Вполне вероятно, что вы сейчас используете набор модулей Python, установленных на системном уровне и на уровне пользователя, и они могут измениться из-под вас при обновлении системных пакетов. Возможно, у вас есть системная версия scipy, которая конфликтует с новой пользовательской версией statsmodels. Для python 3.5 вы должны установить venv; но с 3.6 он становится частью дистрибутива.
Сначала посмотрите на системные пути, когда вы просто запускаете python3.
python3
>>> import sys
>>> print(sys.path)
>>> quit()
А затем создайте чистую, независимую среду и сделайте то же самое.
sudo apt install python3-venv
python3 -m venv ~/name_me
source ~/name_me/bin/activate
python3
>>> import sys
>>> print(sys.path)
>>> quit()
Он должен иметь пути к базовым библиотекам, но избегать путей к установленным дополнительным пакетам. У вас есть чистая среда для их установки. Затем изнутри этого virtualenv, который вы сможете обнаружить по измененному приглашению оболочки, вы можете выполнить установки pip и посмотреть, работают ли они.
pip install numpy scipy patsy pandas
pip install statsmodels
python
>>> import statsmodels.api as sm
И когда вы закончите, вы можете выйти из virtualenv
deactivate