Pyinstaller 运行具有 pyzmq 依赖项的脚本时出错

问题描述 投票:0回答:3

这是我的第一篇 StackOverflow 帖子!

我在创建具有 pyzmq (v22.0.2) 依赖项的 pyinstaller(v4.2) 可执行文件时遇到问题。我通过运行“pyinstaller main.py”创建了一个可执行文件。 dist 文件夹创建时没有错误,但是当我在终端中运行可执行文件时,我在下面的引号中看到错误。

我在 StackOverflow 和 pyinstaller 的文档上搜索了此类问题,但与我的确切问题不匹配。我看到提到了一个 .spec 文件来解决似乎类似的问题,但我不确定这是否是可行的方法,因为我不清楚 pyzmq.libs\.load_order 是什么。

有谁知道如何克服这个错误或者对我可以尝试什么有好的线索?

"C:\Users\[redacted path]\dist\main>main.exe
Traceback (most recent call last):
  File "main.py", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 531, in exec_module
  File "zmq\__init__.py", line 19, in <module>
  File "zmq\__init__.py", line 13, in _delvewheel_init_patch_0_0_9
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\[redacted path]\\dist\\main\\pyzmq.libs\\.load_order'
[4408] Failed to execute script main

C:\Users\[redacted path]\dist\main>"
python python-3.x pyinstaller zeromq pyzmq
3个回答
6
投票

我遇到了同样的问题并找到了解决方案 使用

pip install pyzmq==21.0.0
降级到 21.0.0 然后你可以再次运行 pyinstaller,它将运行得很好。


1
投票

在您的

<local-python-path>\Lib\site-packages
中找到一个名为“pyzmq.libs”的文件夹。

例如,我在这里使用 Miniconda3,所以我在

C:\\Users\MyPC\Miniconda3\envs\my_env\Lib\site-packages

得到了这个

然后,将此文件夹复制到您的

C:\\Users\\[redacted path]\\dist\\main
文件夹,然后重试可执行文件。


0
投票

通过将以下文件夹复制到子文件夹“_internal”中的子文件夹,我能够让 pyzmq 使用 pyinstaller 的单文件夹选项。我正在使用 pyinstaller 6.2.0、python 3.11 和 pyzmq 25.1.1:

将 C:\Users\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyzmq.libs 复制到子文件夹 ._internal\pyzmq.libs

将 C:\Users\AppData\Local\Programs\Python\Python311\Lib\site-packages\zmq 复制到子文件夹 ._internal\zmq

这些是我遇到的运行时错误: FileNotFoundError: [WinError 2] 系统找不到指定的文件: '..._internal\pyzmq.libs' ModuleNotFoundError:没有名为“zmq.backend.cython”的模块

© www.soinside.com 2019 - 2024. All rights reserved.