Python 移动Pyinstaller指定的exe文件的dll文件和库目录

Python 移动Pyinstaller指定的exe文件的dll文件和库目录,python,dll,module,pyinstaller,pyd,Python,Dll,Module,Pyinstaller,Pyd,我使用PyInstaller从以下简单的python脚本为Windows 10创建了一个.exe文件: 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']

我使用PyInstaller从以下简单的python脚本为Windows 10创建了一个
.exe
文件:

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文件和库目录从当前位置移动到我在
hook.py
的变量
path
中指定的目录。正如我所读到的,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
exec_模块中的第627行文件“\lib\site packages\PyInstaller\loader\pyimod03_importers.py” exec(字节码、模块、指令) 文件“site packages\cv2\\uuuuu init\uuuuuuu.py”,第5行,在 ModuleNotFoundError:没有名为“cv2.cv2”的模块 [1988]未能执行脚本temp 看起来程序无法正确加载OpenCV库,即使我指定了通过钩子的路径。运行该程序的唯一方法是将cv2目录放在exe文件的同一文件夹中。 请务必注意,dll文件已正确加载(事实上,如果我使用dll更改文件夹的名称,程序将无法找到它们)

谢谢你的建议