【问题标题】:How to manually add PIL module to pyinstaller exe?如何手动将 PIL 模块添加到 pyinstaller exe?
【发布时间】:2021-01-11 10:03:22
【问题描述】:

我正在使用 pyinstaller 创建一个独立的 exe 文件,但是当我尝试运行它时出现“modulenotfound”错误。即使 PIL 模块与我的所有其他模块位于相同的“站点包”文件夹中,它也无法找到它。如何告诉它 PIL 模块在哪里?

我在使用 pyinstaller 时在我的 cmd 行中尝试了以下标志,但它们都不起作用:

--hidden-import=Pillow
--hidden-import='PIL'
--hidden-import='Pillow'

关于 PIL 模块,我的脚本使用以下代码行:

    from PIL import Image, ImageTk

脚本中一切正常,只有当我使用 pyinstaller 时才会出现问题。

【问题讨论】:

  • 试试--hidden-import PIL。顺便说一句,您是否将 PyInstaller 升级到最新版本(4.0)? PIL(枕头)自动包含在我的 PyInstaller 4.0 和 Windows 7 下的 Python 3.8.5 中。
  • 我正在运行 pyinstaller 4.0、python 3.8.3 和 windows 10。我尝试了--hidden-import PIL,但它不起作用,仍然给我 modulenotfound 错误

标签: tkinter python-imaging-library pyinstaller modulenotfounderror


【解决方案1】:

我找到了一个解决方案:我必须在 PyCharm 终端中安装 pyinstaller,然后我必须在 PyCharm 终端中运行 pyinstaller 以及使用

pyinstaller --onefile -w "foo.py"

我之前在 PyCharm 外部的文件目录中运行 cmd 并在那里运行 pyinstaller,但在 PyCharm 中运行 pyinstaller 可以。

【讨论】:

  • 这是因为pycharm使用了虚拟环境
【解决方案2】:

我刚刚从驱动器内的 Python 文件夹中复制了 PIL 的库文件夹并将其移动到与 .py 文件相同的文件夹中,然后我使用 --hidden-import=PIL 行运行 cmd,它就可以工作了,只需记住将可执行文件放在您在代码行中放置的同一目录中,如果不在同一目录中可能无法运行。

【讨论】:

    【解决方案3】:

    对谁有帮助 我在尝试使用 Pyinstaller 使用 pymssql 时遇到了很多问题,我终于做对了,所以在这里发帖可能会对某人有所帮助 使用 pip install pymssql 安装 pymssql 后

    在 pyintaller 中使用此参数将其包含在内

    --onefile --paths=.\venv\ --hidden-import='pymssql' --hidden-import='uuid' --collect-all='pymssql' --collect-all='uuid'
    

    【讨论】:

      猜你喜欢
      • 2017-03-23
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 1970-01-01
      • 2020-09-12
      • 2016-07-20
      • 2020-05-08
      相关资源
      最近更新 更多