我正在用 Python 编写一个应用程序。它在我的 python 环境中运行良好,但是当我使用 PyInstaller 编译它并尝试运行生成的可执行文件时,我收到以下错误:ImportError: failed to find libmagic. Check your installation
我有一种感觉,这与“python-magic-bin”有关,该安装包含名为“magic”的模块所需的二进制文件,因为如果我从 Python 环境中卸载“python-magic-bin”并尝试运行该应用程序,我得到了完全相同的错误。我认为由于某种原因,这些二进制文件没有被带到编译的 exe 中。
如果它有所作为,我从 .whl 文件安装了“python-magic-bin”。此安装在安装“magic”的目录中添加了一个名为“libmagic”的文件夹 libmagic.dll 和 magic.mgc。
如果我的问题是正确的,我如何让 PyInstaller 携带“魔法”需要的二进制文件?
可以执行以下操作来重现问题:
将此代码复制并粘贴到您的编辑器中。将其另存为名为“test.py”的文件
import magic
m=magic.MAGIC_NONE
print(m)
Run Code Online (Sandbox Code Playgroud)从此链接下载“python_magic_bin-0.4.14-py2.py3-none-win32.whl”并在解释器中使用以下命令将所需的库安装到Python 3.6
>>> pip install pyinstaller
>>> pip install python-magic
>>> pip install python_magic_bin-0.4.14-py2.py3-none-win32.whl
>>> pip install libmagic
Run Code Online (Sandbox Code Playgroud)在与“test.py”文件相同的目录中打开命令提示符,并使用以下命令使用 pyinstaller 编译程序:
> pyinstaller test.py
Run Code Online (Sandbox Code Playgroud)完成后,移动到新创建的 /dist/test 目录 ( cd ./dist/test
) 并使用以下命令运行 .exe:
> ./test.exe
Run Code Online (Sandbox Code Playgroud)运行后,你应该看到一个错误读数:ImportError: failed to find libmagic. Check …