Я собрал exe программы, используя pytorch. Он хорошо работает на ПК, на котором был построен exe, но не на другом ПК. Возникла ошибка ImportError, сбой загрузки 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 <module>
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 <module>
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 работал на других окнах. Пожалуйста, помогите мне, если у вас есть идея. Спасибо!