我一直在使用PyQt5制作一个GUI应用程序,我正在尝试使其成为一个独立的应用程序。我见过人们尝试执行此操作的最常见方法是使用pyinstaller。对我造成问题的导入语句是“ from sklearn.cluster import DBSCAN”。我认为这是导致问题的这一行的原因,是因为当我从命令提示符启动应用程序时,它告诉我该行发生了错误。另外,当我注释掉该行并尝试将python文件制作为实际运行的应用程序时。我不确定导致问题的原因,因此我将尝试包括尽可能多的信息,包括尝试解决问题的尝试。
在anaconda powershell提示符下对文件运行pyinstaller时输出
sklearn文件夹位于dist内容内
Cluster folder contents within sklearn
运行应用程序时出现命令提示符错误
尝试解决此问题
我尝试遵循chris的建议,并使用他说要添加的代码制作了钩子文件。当我尝试运行pyinstaller时,它会导致相同的错误以及我在命令提示符下粘贴的错误。
尝试2:Data science blogpost answer
我遵循了scikit-learn部分中的说明。不幸的是,它导致的错误与命令提示符下的错误相同。
尝试按照Vaibhav的回答进行操作,但在命令提示符下导致相同的错误。
我的挂钩文件
hook-scipy
import os
import glob
from PyInstaller.utils.hooks import get_module_file_attribute
from PyInstaller.compat import is_win
binaries = []
# package the DLL bundle that official scipy wheels for Windows ship
if is_win:
dll_glob = os.path.join(os.path.dirname(
get_module_file_attribute('scipy')), 'extra-dll', "*.dll")
if glob.glob(dll_glob):
binaries.append((dll_glob, "."))
# collect library-wide utility extension modules
hiddenimports = ['scipy._lib.%s' % m for m in [
'messagestream', "_ccallback_c", "_fpumode"]]
hook-sklearn.metrics.cluster
from PyInstaller.utils.hooks import collect_data_files
hiddenimports = ['sklearn.utils.sparsetools._graph_validation',
'sklearn.utils.sparsetools._graph_tools',
'sklearn.utils.lgamma',
'sklearn.utils.weight_vector',
'sklearn.utils.fixes',
'sklearn.utils.extmath',
'sklearn.metrics.ranking',
'sklearn.neighbors',
'sklearn.neighbors.typedefs',
'sklearn.neighbors.quad_tree']
datas = collect_data_files('sklearn')
hook-sklearn
from PyInstaller.utils.hooks import collect_submodules
hiddenimports = collect_submodules('sklearn')
hook-sklearn.tree
hiddenimports = ['sklearn.tree._utils']
这是我目前拥有的挂钩文件。它们保存在以下位置:
C:\ Users \ Admin \ Miniconda3 \ pkgs \ pyinstaller-3.4-py37h2a8f88b_1 \ Lib \ site-packages \ PyInstaller \ hooks
我已经坚持了一段时间。如果有人可以告诉我如何解决此错误,我将不胜感激。如果您需要有关我一直在处理的问题的更多信息,请告诉我。