我设法从这个简单的 python 脚本中使用PyInstaller.exe
为 Windows 10 创建了一个文件:
import cv2
print("Hello World!)
我还hook.py
用这几行代码创建了一个文件:
sys.path.append(path)
old = os.environ.get('PATH', '')
paths=[path]
paths.append(old)
new = os.pathsep.join(paths)
os.environ['PATH'] = new
为了更新程序的路径。生成的 exe 正在运行:exe 所在的dist
目录包含 exe 文件、一组dll
和pyd
文件以及库目录(在本例中为:cv2
、numpy
)。
现在,我需要将 dll 文件和库目录从当前位置移动到我path
在hook.py
. 正如我在这个答案中所读到的,exe 目录中只维护了几个文件(例如pythonXX.dll
文件)。结果是 exe 无法运行并发出此错误:
File "<path_to_minoconda>\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\cv2\__init__.py", line 5, in <module>
ModuleNotFoundError: No module named 'cv2.cv2'
[1988] Failed to execute script temp
即使我通过钩子指定了路径,程序似乎也无法正确加载 OpenCV 库。运行程序的唯一方法是将 cv2 目录放在 exe 文件的同一文件夹中。重要的是要注意 dll 文件已正确加载(实际上,如果我用 dll 更改文件夹的名称,程序将无法找到它们)。
感谢您的任何建议!