Python: 当 运行 是使用 PyInstaller 制作的可执行文件时,没有名为 'bottle-websocket' 的模块,包括 Eel 模块

Python: no module named 'bottle-websocket' when running an executable made with PyInstaller, including Eel module

我在玩 Python 的 eel 模块 - 给 运行 HTML + CSS/JS 一个机会 python 功能。

制作了一个简单的程序,尝试通过 PyInstaller 从中制作可执行文件。 没有任何错误,但是当 运行ning 这个可执行文件时它在第一行崩溃 - import eel,告诉 - there is no module called 'bottle-websocket'.

我检查了 pip:已安装 eelbottle-websocket。无法弄清楚是什么问题。附件:

main.py:

import eel
from os import path

eel.init(path.dirname(__file__) + "/web")
eel.start('main.html', block=False)
while True:
   eel.sleep(10)

错误:
Picture with the error while I try to start the exe

编辑: PyInstaller Log

我花了一整天的时间找出解决方案,但最后,它是:

  1. 将plugin.py、server.py文件从C:\Users\YOUR_USERNAME\AppData\Local\Programs\Python\Python36-32\lib\site-packages\bottle_websocket复制到C:\Users *YOUR_USERNAME*\AppData\Local\Programs\Python\Python36-32\Lib
  2. 确保在 PyInstaller 生成的 *.spec 文件中有如下一行(适用于 PYTHON 3.6 32 位):
    datas=[('C:\Users\YOUR_USERNAME\AppData\Local\Programs\Python\Python36-32\lib\site-packages\eel\eel.js', 'eel'), ('PATH_TO_YOUR_WEB_FOLDER', 'YOUR_WEB_FOLDER_NAME')]

    3)运行命令在cmd中:
    pythonC:\Users\YOUR_USERNAME\AppData\Local\Programs\Python\Python36-32\lib\site-packages\eel\main.py HERE_SHOULD_BE_THE_PATH_TO_YOUR_WEB_FOLDER
  • 此命令将使 'bottle-websocket' 正常工作,并确保它符合 Web 文件夹和文件。

我也遇到了同样的问题,但我终于解决了,其实非常非常简单,首先确保你使用的是auto-py-to-exe来打包你的应用程序。

插入必要的细节(脚本文件、额外文件等)后,您可能会在下面看到一个高级选项选项卡,单击它展开它,寻找隐藏的导入标签并插入 "bottle-websocket"表示隐藏导入的输入字段,这基本上就是您需要做的所有事情

希望对您有所帮助