Skip to main content
 首页 » 编程设计

python之安装程序;模块未找到错误 : No module named 'sklearn.utils._cython_blas'

2025年05月04日21三少

我的 python 项目有这个导入列表:

import pandas as pd 
import time 
import sqlalchemy 
from sklearn.ensemble import RandomForestClassifier 
import pandas as pd 
import numpy as np 
from sqlalchemy import Column, String, Float, Integer, SmallInteger, MetaData 
from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy.orm import sessionmaker 

以及用于项目分发的规范文件:

import sys 
sys.setrecursionlimit(5000) 
 
block_cipher = None 
 
 
a = Analysis(['DataManager.py'], 
             pathex=['E:\\ForexPredictor'], 
             binaries=[], 
             datas=[], 
             hiddenimports=['cython','pymysql','pandas._libs.tslibs.timedeltas','sklearn.neighbors.typedefs','sklearn.utils.typedefs'], 
             hookspath=[], 
             runtime_hooks=[], 
             excludes=[], 
             win_no_prefer_redirects=False, 
             win_private_assemblies=False, 
             cipher=block_cipher, 
             noarchive=False) 
pyz = PYZ(a.pure, a.zipped_data, 
             cipher=block_cipher) 
exe = EXE(pyz, 
          a.scripts, 
          [], 
          exclude_binaries=True, 
          name='DataManager', 
          debug=False, 
          bootloader_ignore_signals=False, 
          strip=False, 
          upx=True, 
          console=True ) 
coll = COLLECT(exe, 
               a.binaries, 
               a.zipfiles, 
               a.datas, 
               strip=False, 
               upx=True, 
               name='DataManager') 

然后我使用这个命令来制作项目的exe文件:

pyinstaller Datamanager.spec 

但是当我运行 exe 文件时它给出了这个错误:

ModuleNotFoundError: No module named 'sklearn.utils._cython_blas' 

我还应该在隐藏的导入部分添加什么?

请您参考如下方法:

PyInstaller 使用 hook每个 Python 模块的机制,但有时它会遗漏一些内部包,因此您需要手动提供它们。您可以使用 --hidden-import添加 sklearn 缺少的模块。

pyinstaller -F --hidden-import="sklearn.utils._cython_blas" --hidden-import="sklearn.neighbors.typedefs" --hidden-import="sklearn.neighbors.quad_tree" --hidden-import="sklearn.tree._utils" Datamanager.py