我用pytorch建立了一个程序的exe。它在构建了exe的PC上运行良好,但在另一台PC上不运行。如果出现重要错误,则加载DLL失败。

我对pytorch和pyinstaller还不熟悉,所以我不知道发生了什么。

重要的是:

F:\test>test D:\testData.xml D:\testResult.xml

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp;D:\Program Files\Java\jdk-9.0.4\bin;D:\Program Files\Java\jdk-9.0.4\jre\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;D:\Program Files\MATLAB\R2016a\runtime\win64;D:\Program Files\MATLAB\R2016a\bin;D:\Program Files\MATLAB\R2016a\polyspace\bin;D:\FFMPEG\bin;C:\WINDOWS\System32\OpenSSH\;D:\Anaconda3;D:\Anaconda3\Scripts;D:\Anaconda3;D:\Anaconda3\Library\mingw-w64\bin;D:\Anaconda3\Library\usr\bin;D:\Anaconda3\Library\bin;D:\Anaconda3\Scripts;D:\Python\Python36\Scripts\;D:\Python\Python36\;C:\Users\snow-\AppData\Local\Microsoft\WindowsApps;D:\Program Files\modeltech64_10.4\win64;D:\modeltech64_10.4\win64;D:\Modeltech_pe_edu_10.4a\win32pe_edu;F:\test;F:\test\torch\lib

Traceback (most recent call last):

File "test.py", line 10, in

File "C:\Users\yuech\AppData\Local\conda\conda\envs\cy_pytorch\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module

File "Lib\site-packages\torch\__init__.py", line 102, in

ImportError: DLL load failed: æ¾ä¸å°æå®ç模åã

[10812] Failed to execute script test

我把所有的“路径”都打印出来

6号线是

import torch

102号线是

from torch._C import *

我在网上搜索了一下,发现可能是由openmp或numpy引起的。我查过了,文件夹里有。

我试图添加变量环境“PATH”,但它不起作用。

我使用pytorch 1.0.1、python 3.6.8和pyinstaller 3.4

我用这行代码构建了我的exe

pyinstaller test.py --exclude-module PyQt5 -p dataLoader_cy.py --hidden-import dataLoader_cy -p C:\Users\yuech\AppData\Local\conda\conda\envs\cy_pytorch\Lib\site-packages --hidden-import

torchvision --hidden-import numpy

我试着用这个添加环境变量

import os

os.environ['PATH'] += (";" + os.path.abspath('.'))

os.environ['PATH'] += (";" + os.path.join(os.path.abspath('.'), "torch\lib"))

由于我在python和pytorch方面的经验有限,我可以理解为什么它可以在一台电脑上工作,而不能在其他电脑上工作。我希望我的exe可以在其他窗口上运行。如果你有什么想法,请帮帮我。谢谢您!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐