conda环境下statsmodels子模块导入失败及安装报错问题咨询
Hey there, let's break down your issues and fix them step by step:
What's Going On Here?
You've got two separate problems: a DLL load failure when importing statsmodels, and a PackagesNotFoundError when trying to install submodules that don't exist as standalone packages.
Your Import Code
import numpy as np import statsmodels.api as statm import statsmodels.formula.api as statfa import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D
The Error Traceback
Traceback (most recent call last): File "C:/Users/aboi/PycharmProjects/deeplearning/deep_class/05_3D_Graph.py", line 2, in <module> import statsmodels.api as statm File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\statsmodels\api.py", line 7, in <module> from . import regression File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\statsmodels\regression\__init__.py", line 1, in <module> from .linear_model import yule_walker File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\statsmodels\regression\linear_model.py", line 40, in <module> from scipy import stats File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\stats\__init__.py", line 379, in <module> from .stats import * File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\stats\stats.py", line 182, in <module> from . import distributions File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\stats\distributions.py", line 10, in <module> from ._distn_infrastructure import (entropy, rv_discrete, rv_continuous, File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\stats\_distn_infrastructure.py", line 24, in <module> from scipy import optimize File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\optimize\__init__.py", line 391, in <module> from ._minimize import * File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\optimize\_minimize.py", line 30, in <module> from ._trustregion_constr import _minimize_trustregion_constr File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\optimize\_trustregion_constr\__init__.py", line 4, in <module> from .minimize_trustregion_constr import _minimize_trustregion_constr File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\optimize\_trustregion_constr\minimize_trustregion_constr.py", line 4, in <module> from scipy.sparse.linalg import LinearOperator File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\sparse\linalg\__init__.py", line 116, in <module> from .eigen import * File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\sparse\linalg\eigen\__init__.py", line 11, in <module> from .arpack import * File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\sparse\linalg\eigen\arpack\__init__.py", line 22, in <module> from .arpack import * File "C:\Users\aboi\.conda\envs\hw\lib\site-packages\scipy\sparse\linalg\eigen\arpack\arpack.py", line 45, in <module> from . import _arpack ImportError: DLL load failed: dll load failed the specified procedure could not be found.
The Extra Package Install Error
When you ran conda install statsmodels.api and conda install statsmodels.formula.api, you got a PackagesNotFoundError because those aren't real conda packages—they're just submodules of the main statsmodels library.
Why This Happens
DLL Load Failure: The root issue is with scipy's ARPACK module. This usually happens because:
- Your scipy version is incompatible with other dependencies (like numpy or MKL) in your conda environment
- The pre-built scipy package you installed is missing required system DLLs
- There are conflicting versions of scipy or its dependencies floating around in your environment
Invalid Package Names:
statsmodels.apiandstatsmodels.formula.apiaren't standalone packages—you don't install them separately. They come included with the mainstatsmodelspackage once it's properly installed.
Fixes to Try
First: Fix the Scipy/Statsmodels Compatibility
The most reliable fix is to reinstall scipy and statsmodels using a channel that ensures compatibility:
- Activate your conda environment first:
conda activate hw - Uninstall the problematic versions completely:
conda remove --force scipy statsmodels - Install using the conda-forge channel (their packages are better tested for cross-dependency compatibility):
conda install -c conda-forge scipy statsmodels numpy pandas matplotlib
Second: Verify the Fix
Fire up a Python shell in your activated environment and run your import code again:
import numpy as np import statsmodels.api as statm import statsmodels.formula.api as statfa import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D print("All modules imported successfully!")
If That Still Doesn't Work
- Install VC++ Redistributable: Sometimes DLL errors are caused by missing system libraries. Grab the 64-bit Microsoft Visual C++ Redistributable for Visual Studio 2019 and install it.
- Create a Fresh Environment: Old environments can get messy with conflicting dependencies. Start fresh:
(Python 3.9 or 3.10 are stable choices with great package compatibility.)conda create -n new_hw python=3.9 numpy pandas matplotlib scipy statsmodels -c conda-forge conda activate new_hw
A Quick Note on Submodules
Remember: You never need to install statsmodels.api or statsmodels.formula.api directly. As long as the main statsmodels package is installed correctly, those submodules are available to import right away.
内容的提问来源于stack exchange,提问作者RainOver

