首页 > 解决方案 > PyInstaller 错误:ModuleNotFoundError:没有名为“statsmodels.__init__._version”的模块

问题描述

我正在尝试从终端构建一个通过 PyInstaller 使用 statsmodels 的 exe 文件。exe 文件由 PyInstaller 构建,没有错误——但是运行时出现以下错误:

ModuleNotFoundError: No module named 'statsmodels.__init__._version'

我已经尝试在 PyInstaller“钩子”目录中安装 statsmodels 钩子,如此处所述但这不起作用。我还尝试显式导入 statsmodels。init ._version 在我的 Python 代码中,但这也不起作用。下面是我导入包的代码顶部:

import pandas as pd
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.neighbors import NearestNeighbors, KNeighborsClassifier
import numpy as np
import matplotlib.pylab as plt
from sklearn.linear_model import LogisticRegression
import statsmodels.api as sm
from scipy import stats
from sklearn import datasets, neighbors
from mlxtend.plotting import plot_decision_regions
import seaborn as sns
from tqdm import tqdm
import matplotlib.ticker as mtick
from tkinter import *
from tkinter.filedialog import askopenfilename
import sklearn.utils._cython_blas
import sklearn.neighbors.typedefs
import statsmodels.tsa.statespace._filters
import statsmodels.tsa.statespace._filters._conventional
import statsmodels.tsa.statespace._filters._univariate
import statsmodels.tsa.statespace._filters._univariate_diffuse
import statsmodels.tsa.statespace._filters._inversions
import statsmodels.tsa.statespace._smoothers
import statsmodels.tsa.statespace._smoothers._conventional
import statsmodels.tsa.statespace._smoothers._univariate
import statsmodels.tsa.statespace._smoothers._univariate_diffuse
import statsmodels.tsa.statespace._smoothers._classical
import statsmodels.tsa.statespace._smoothers._alternative
import statsmodels.__init__._version

这是错误的回溯:

File "LR.py", line 9, in <module>
  File "/opt/anaconda3/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 493, in exec_module
    exec(bytecode, module.__dict__)
  File "statsmodels/api.py", line 32, in <module>
  File "/opt/anaconda3/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 493, in exec_module
    exec(bytecode, module.__dict__)
  File "statsmodels/__init__.py", line 2, in <module>
ModuleNotFoundError: No module named 'statsmodels.__init__._version'

我可以做些什么来解决这个问题,以便 exe 文件包含 statsmodels 包并且可以运行?

标签: pythontkinterpyinstallerstatsmodels

解决方案


statsmodels版本通过__version__属性访问。

import statsmodels

print(statsmodels.__version__)

这表明

v0.12.0rc0+20.g98dfc0073

在我的系统上。

你应该替换import statsmodels.__init__._versionfrom statsmodels.__init__ import __version__


推荐阅读