web-dev-qa-db-ja.com

pyinstaller; ModuleNotFoundError:「sklearn.utils._cython_blas」という名前のモジュールはありません

私の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'

非表示のインポート部分に他に何を追加する必要がありますか?

3
amin mohammadi

.spec-filesの使用に関するドキュメントを読んでみましたか? https://pyinstaller.readthedocs.io/en/stable/spec-files.html#using-spec-files

それが問題かどうかはわかりませんが、.exeファイルを作成するコマンドの* .py-fileはどこにありますか?私が知る限り、プログラムを作成するには、pyinstallerに.pyファイルを与える必要があります。

0
BHR