Python 3.8 не может импортировать statsmodels.api - PullRequest
1 голос
/ 12 июля 2020

Я установил NumPy, SciPy, Pandas и Patsy перед установкой statsmodels, но когда я попытался импортировать statsmodels.api, я получил следующее сообщение об ошибке:

ImportError: cannot import name '_initialization' from
'statsmodels.tsa.statespace'
(/Library/Frameworks/Python.framework/Versions/3.8/lib/
python3.8/site-packages/statsmodels/tsa/statespace/__init__.py)

Импорт статистических моделей сам по себе работает отлично. Я попытался решить эту проблему, полностью удалив statsmodels и установив его снова, а также установив statsmodels через pip install git+https://github.com/statsmodels/statsmodels, но снова не повезло.

Все версии следующие:

NumPy: 1.18.1 Pandas: 0,25,3 SciPy: 1.4.1 Пэтси: 0.5.1 Statsmodels: 0.11.1

Продолжая исследовать сообщение об ошибке, я открыл файл __init.py__ в папке состояния и обнаружил следующий код:

from statsmodels.tools._testing import PytestTester

test = PytestTester()

Запустив этот код, я получаю следующее сообщение об ошибке:

File "/Library/Frameworks/Python.framework/Versions/
3.8/lib/python3.8/site-packages/statsmodels/tools/_testing.py", line 29, in __init__
raise ValueError('Unable to determine path')
ValueError: Unable to determine path

Я не знаю, означает ли это что-нибудь, так как я просто запустил код сам по себе, но эта проблема уже некоторое время меня беспокоит: пожалуйста, помогите!

1 Ответ

0 голосов
/ 12 июля 2020

Из файла с ошибкой https://github.com/statsmodels/statsmodels/blob/f3f89ad777b22e6db565897397ece24d41af5700/statsmodels/tools/_testing.py#L27 ожидается имя файла. Если вы запускаете файл напрямую, он не будет работать

#temp.py

def foo():
  import sys
  f = sys._getframe(1)
  print("Name:", f.f_locals.get('__file__', None))

$ python3 ./temp.py
>>> Name: None

# temp2.py
import temp
temp.foo()

$ python3 ./temp2.py
>>> Name: "temp2.py"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...