Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在Windows上执行PyInstaller创建的包时发生ModuleNotFound错误_Python 3.x_Pyinstaller_Boto - Fatal编程技术网

Python 3.x 在Windows上执行PyInstaller创建的包时发生ModuleNotFound错误

Python 3.x 在Windows上执行PyInstaller创建的包时发生ModuleNotFound错误,python-3.x,pyinstaller,boto,Python 3.x,Pyinstaller,Boto,我正在使用PyInstaller打包我的ML解决方案,其中包括keras和tensorflow。exe构建得很好,但是当我执行exe时,它为boto提供了一个ModuleNotFoundError。如果我使用该脚本运行该解决方案,它就可以正常工作。所有依赖项都已安装 这是我的规范文件: block_cipher = None a = Analysis(['main.py'], pathex=['.'], binaries=[],

我正在使用PyInstaller打包我的ML解决方案,其中包括keras和tensorflow。exe构建得很好,但是当我执行exe时,它为boto提供了一个
ModuleNotFoundError
。如果我使用该脚本运行该解决方案,它就可以正常工作。所有依赖项都已安装

这是我的规范文件:

block_cipher = None


a = Analysis(['main.py'],
             pathex=['.'],
             binaries=[],
             datas=[('data\\*.tsv', 'data')],
             hiddenimports=['sklearn.neighbors.typedefs','sklearn.neighbors.quad_tree','sklearn.tree._utils'],
             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,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='main',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='main')
以下是错误:

文件“site packages\gensim\utils.py”,第44行,在文件中 “c:\programdata\anaconda3\envs\catalogai\lib\site packages\PyInstaller\loader\pyimod03\u importers.py”, exec_模块中的第627行 exec(字节码,模块.dict)文件“站点包\smart\u open\uuuu init\uuuu.py”,第28行,在文件中 “c:\programdata\anaconda3\envs\catalogai\lib\site packages\PyInstaller\loader\pyimod03\u importers.py”, exec_模块中的第627行 exec(字节码,模块.dict)文件“站点包\smart\u open\smart\u open\u lib.py”,第39行,在 ModuleNotFoundError:没有名为“boto”[9628]的模块无法执行 主脚本


您是否尝试手动安装boto模块
pip安装boto3
首先安装pip

根据有时PyInstaller无法找到导入的模块并将其包含在可执行输出中。解决方案很简单:

要查找这些隐藏的导入,请使用
-v
标志构建应用程序(获取上面Python的详细导入)并运行它

一旦知道需要哪些模块,就可以使用
--hidden import=
命令选项,或者通过编辑规范文件,或者使用钩子文件,将所需的模块添加到捆绑包中(请参见下面的了解PyInstaller钩子)

只需将缺少的模块添加到
hiddenimports

block_cipher = None


a = Analysis(['main.py'],
             pathex=['.'],
             binaries=[],
             datas=[('data\\*.tsv', 'data')],
             hiddenimports=['sklearn.neighbors.typedefs','sklearn.neighbors.quad_tree','sklearn.tree._utils','boto`],
             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,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='main',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='main')

编辑脚本重命名导入
导入boto3
。你试过了吗。。?在方法调用时重命名它对我也有效。尽管我必须通过许多依赖项才能找到它们。谢谢