我一直在尝试创建一个简单的 .exe 文件来接收参数并返回我的网络的输出,以替代使用 C++ 包装器。
我使用 pyinstaller 是因为它过去对我来说效果更好。
现在我只构建一个仅包含导入的 .py 文件,但我已经收到以下错误:
RuntimeError: Cannot find the MXNet library.
List of candidates:
C:\Users\<user>\AppData\Local\Temp\_MEI52802\mxnet\libmxnet.dll
...
我的导入.py
import time
import numpy as np
import mxnet as mx
from mxnet import gluon, autograd, nd
from mxnet.gluon import nn, rnn
import string
import cv2
import glob
import time
import model
我尝试过的:
- 在 python 3.6/3.5/3.4 中使用 pyinstaller;
- 编辑.spec并将缺少的dll添加到二进制文件列表中;
- 将 mxnet 添加为隐藏导入。
问候。
最佳答案
这是看起来抛出异常的 MXNet 行:https://github.com/apache/incubator-mxnet/blob/c6b1fd5a74152b64f92a8b76e1d28f4c0d4f00cd/python/mxnet/libinfo.py#L73
这意味着您需要在 Windows 上设置库路径 ($PATH) 以包含包含 MXNet 的目录。
奇怪的是,MXNet 安装在临时目录中。我建议按照 mxnet.io 的安装说明使用 Pip 或 Conda 安装 MXnet。
https://mxnet.incubator.apache.org/versions/master/install/windows_setup.html
关于python - pyinstaller 缺少 mxnet dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53286509/