from torch._C import * (ImportError: DLL load failed: The specified module could not be found.)

Viewed 1651

I am using Windows 10 and Python 3.6.10 through conda 4.8.3.

I am fairly new to Python and am using PyInstaller in a virtual environment to create an executable out of a deep learning tool I made. The program opens a tkinter window and runs arcgis.learn functions on data provided by the user. Arcgis.learn requires fastai, PyTorch, torchvision, and scikit-image as its dependencies. I installed them using conda install -c esri -c fastai -c pytorch arcgis=1.8.1 scikit-image=0.15.0 pillow=6.2.2 libtiff=4.0.10 fastai=1.0.60 pytorch=1.4.0 torchvision=0.5.0 tensorflow-gpu=2.1.0 --no-pin. PyInstaller creates the executable, albeit with many warnings, but fails after any arcgis.learn function is called with the following error:

File "site-packages\torch\__init__.py", line 81, in <module>
ImportError: DLL load failed: The specified module could not be found.

Line 81 being from torch._C import *. All packages and modules import correctly and work as intended when I run the code in Jupyter Notebook. I have tried the following solutions:

  • Ensuring PYTHONPATH points to [PythonRoot], [PythonRoot]\Library\bin, [PythonRoot]\Scripts, [PythonRoot]\bin, and %SYSTEMROOT%
  • Appending hidden-imports in the .spec file
  • Reinstalling pytorch
  • Installing VC 2017 Redist, which I already have installed
  • This post mentioned another folder having the name torch, but I found nothing after looking.

I am unsure where to go from here, so any help would be greatly appreciated. The feedback from PyInstaller is below, and many libraries could not be found. Notably, torch_python.dll is missing.

135 INFO: checking Analysis
136 INFO: Building Analysis because Analysis-00.toc is non existent
136 INFO: Initializing module dependency graph...
153 INFO: Caching module graph hooks...
160 INFO: Analyzing base_library.zip ...
5422 INFO: Caching module dependency graph...
5526 INFO: running Analysis Analysis-00.toc
5546 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
required by C:\Users\User\Anaconda3\envs\myenv\python.exe
5916 INFO: Analyzing C:\Users\User\Documents\CrackDetectionToolForExe\GUI_Main.py
7380 INFO: Processing pre-find module path hook   distutils
7381 INFO: distutils: retargeting to non-venv dir 'C:\\Users\\User\\Anaconda3\\envs\\myenv\\lib'
9257 INFO: Processing pre-safe import module hook   setuptools.extern.six.moves
10028 INFO: Processing pre-find module path hook   site
10030 INFO: site: retargeting to fake-dir 'C:\\Users\\User\\Anaconda3\\envs\\myenv\\lib\\site-packages\\PyInstaller\\fake-modules'
27381 INFO: Processing pre-safe import module hook   six.moves
27951 INFO: Processing pre-safe import module hook   urllib3.packages.six.moves
151295 INFO: Analyzing hidden import 'scipy.special.cython_special'
151296 INFO: Processing module hooks...
151298 INFO: Loading module hook "hook-certifi.py"...
151301 INFO: Loading module hook "hook-cryptography.py"...
151704 INFO: Loading module hook "hook-cv2.py"...
151706 INFO: Loading module hook "hook-distutils.py"...
151708 INFO: Loading module hook "hook-encodings.py"...
151829 INFO: Loading module hook "hook-fastai.py"...
151832 INFO: Loading module hook "hook-fastprogress.py"...
151835 INFO: Loading module hook "hook-h5py.py"...
151837 INFO: Loading module hook "hook-importlib_metadata.py"...
151840 INFO: Loading module hook "hook-IPython.py"...
152297 INFO: Excluding import 'PyQt4'
152307 INFO:   Removing import of PyQt4 from module IPython.external.qt_loaders
152308 INFO: Excluding import 'tkinter'
152315 INFO:   Removing import of tkinter from module IPython.lib.clipboard
152317 INFO: Excluding import 'PyQt5'
152326 INFO:   Removing import of PyQt5.QtCore from module IPython.external.qt_loaders
152326 INFO:   Removing import of PyQt5 from module IPython.external.qt_loaders
152327 INFO:   Removing import of PyQt5.QtSvg from module IPython.external.qt_loaders
152327 INFO:   Removing import of PyQt5.QtWidgets from module IPython.external.qt_loaders
152328 INFO:   Removing import of PyQt5.QtGui from module IPython.external.qt_loaders
152329 INFO: Excluding import 'PySide'
152340 INFO:   Removing import of PySide from module IPython.external.qt_loaders
152342 INFO: Excluding import 'matplotlib'
152351 INFO:   Removing import of matplotlib.figure from module IPython.core.pylabtools
152352 INFO:   Removing import of matplotlib.pyplot from module IPython.core.pylabtools
152352 INFO:   Removing import of matplotlib.backend_bases from module IPython.core.pylabtools
152353 INFO:   Removing import of matplotlib._pylab_helpers from module IPython.core.pylabtools
152353 INFO:   Removing import of matplotlib from module IPython.core.pylabtools
152355 INFO: Excluding import 'gtk'
152364 INFO: Loading module hook "hook-jedi.py"...
152545 INFO: Loading module hook "hook-jinja2.py"...
152563 INFO: Loading module hook "hook-jsonschema.py"...
152569 INFO: Loading module hook "hook-keyring.backends.py"...
153157 INFO: Loading module hook "hook-lib2to3.py"...
153162 INFO: Loading module hook "hook-matplotlib.backends.py"...
154127 INFO:   Matplotlib backend "GTK3Agg": ignored
    backend Gtk3Agg requires cairo
154592 INFO:   Matplotlib backend "GTK3Cairo": ignored
    cairo backend requires that pycairo>=1.11.0 or cairocffiis installed
155060 INFO:   Matplotlib backend "MacOSX": ignored
    cannot import name '_macosx'
156182 INFO:   Matplotlib backend "nbAgg": added
157004 INFO:   Matplotlib backend "Qt4Agg": added
157467 INFO:   Matplotlib backend "Qt4Cairo": ignored
    cairo backend requires that pycairo>=1.11.0 or cairocffiis installed
158146 INFO:   Matplotlib backend "Qt5Agg": added
158605 INFO:   Matplotlib backend "Qt5Cairo": ignored
    cairo backend requires that pycairo>=1.11.0 or cairocffiis installed
159258 INFO:   Matplotlib backend "TkAgg": added
159870 INFO:   Matplotlib backend "TkCairo": ignored
    cairo backend requires that pycairo>=1.11.0 or cairocffiis installed
160709 INFO:   Matplotlib backend "WebAgg": added
161313 INFO:   Matplotlib backend "WX": ignored
    No module named 'wx'
161769 INFO:   Matplotlib backend "WXAgg": ignored
    No module named 'wx'
162215 INFO:   Matplotlib backend "WXCairo": ignored
    No module named 'wx'
162692 INFO:   Matplotlib backend "agg": added
163138 INFO:   Matplotlib backend "cairo": ignored
    cairo backend requires that pycairo>=1.11.0 or cairocffiis installed
163750 INFO:   Matplotlib backend "pdf": added
164383 INFO:   Matplotlib backend "pgf": added
164871 INFO:   Matplotlib backend "ps": added
165347 INFO:   Matplotlib backend "svg": added
165932 INFO:   Matplotlib backend "template": added
166404 INFO: Loading module hook "hook-matplotlib.py"...
166816 INFO: Loading module hook "hook-nbconvert.py"...
166841 INFO: Loading module hook "hook-nbformat.py"...
166849 INFO: Loading module hook "hook-notebook.py"...
168004 INFO: Loading module hook "hook-numpy.core.py"...
168153 INFO: MKL libraries found when importing numpy. Adding MKL to binaries
168158 INFO: Loading module hook "hook-numpy.py"...
168160 INFO: Loading module hook "hook-osgeo.py"...
168169 INFO: Loading module hook "hook-pandas.py"...
169500 INFO: Loading module hook "hook-PIL.Image.py"...
169984 INFO: Loading module hook "hook-PIL.py"...
169991 INFO: Excluding import 'PyQt4'
169999 INFO: Excluding import 'tkinter'
170006 INFO:   Removing import of tkinter from module PIL.ImageTk
170008 INFO: Excluding import 'PyQt5'
170015 INFO:   Removing import of PyQt5.QtCore from module PIL.ImageQt
170015 INFO:   Removing import of PyQt5.QtGui from module PIL.ImageQt
170017 INFO: Excluding import 'PySide'
170026 INFO: Import to be excluded not found: 'FixTk'
170027 INFO: Loading module hook "hook-PIL.SpiderImagePlugin.py"...
170035 INFO: Excluding import 'tkinter'
170041 INFO: Import to be excluded not found: 'FixTk'
170041 INFO: Loading module hook "hook-pkg_resources.py"...
170773 INFO: Processing pre-safe import module hook   win32com
171246 INFO: Excluding import '__main__'
171252 INFO:   Removing import of __main__ from module pkg_resources
171253 INFO: Loading module hook "hook-pycparser.py"...
171255 INFO: Loading module hook "hook-pydoc.py"...
171256 INFO: Loading module hook "hook-pygments.py"...
173271 INFO: Loading module hook "hook-PyQt5.py"...
174211 WARNING: Hidden import "PyQt5.sip" not found!
174211 INFO: Loading module hook "hook-PyQt5.QtCore.py"...
174320 INFO: Loading module hook "hook-PyQt5.QtGui.py"...
174525 INFO: Loading module hook "hook-PyQt5.QtSvg.py"...
174759 INFO: Loading module hook "hook-PyQt5.QtWidgets.py"...
174991 INFO: Loading module hook "hook-pythoncom.py"...
175602 INFO: Loading module hook "hook-pytz.py"...
175608 INFO: Loading module hook "hook-pywintypes.py"...
176201 INFO: Loading module hook "hook-pywt.py"...
176202 INFO: Loading module hook "hook-scipy.io.matlab.py"...
176203 INFO: Loading module hook "hook-scipy.linalg.py"...
176205 INFO: Loading module hook "hook-scipy.py"...
176208 INFO: Loading module hook "hook-scipy.sparse.csgraph.py"...
176213 INFO: Loading module hook "hook-scipy.special._ellip_harm_2.py"...
176214 INFO: Loading module hook "hook-scipy.special._ufuncs.py"...
176215 INFO: Loading module hook "hook-setuptools.py"...
C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\setuptools\distutils_patch.py:26: UserWarning: Distutils was imported before Setuptools. This usage is discouraged and may exhibit undesirable behaviors or errors. Please use Setuptools' objects directly or at least import Setuptools first. "Distutils was imported before Setuptools. This usage is discouraged " 
177118 INFO: Loading module hook "hook-skimage.io.py"...
179859 INFO: Loading module hook "hook-skimage.transform.py"...
179889 INFO: Loading module hook "hook-sqlite3.py"...
180019 INFO: Loading module hook "hook-sysconfig.py"...
180021 INFO: Loading module hook "hook-torch.py"...
180233 INFO: Loading module hook "hook-win32com.py"...
180946 INFO: Loading module hook "hook-xml.dom.domreg.py"...
180948 INFO: Loading module hook "hook-xml.etree.cElementTree.py"...
180949 INFO: Loading module hook "hook-xml.py"...
180950 INFO: Loading module hook "hook-zmq.py"...
183910 INFO: Loading module hook "hook-_tkinter.py"...
184162 INFO: checking Tree
184163 INFO: Building Tree because Tree-00.toc is non existent
184164 INFO: Building Tree Tree-00.toc
184245 INFO: checking Tree
184245 INFO: Building Tree because Tree-01.toc is non existent
184246 INFO: Building Tree Tree-01.toc
184260 INFO: Loading module hook "hook-gevent.py"...
184683 INFO: Determining a mapping of distributions to packages...
654070 WARNING: Unable to find package for requirement greenlet from package gevent.
654070 WARNING: Unable to find package for requirement zope.interface from package gevent.
654072 WARNING: Unable to find package for requirement zope.event from package gevent.
654072 INFO: Packages required by gevent:
    ['cffi', 'setuptools']
655479 INFO: Loading module hook "hook-imageio.py"...
656437 INFO: checking Tree
656438 INFO: Building Tree because Tree-02.toc is non existent
656439 INFO: Building Tree Tree-02.toc
656488 INFO: Looking for ctypes DLLs
656765 INFO: Analyzing run-time hooks ...
656800 INFO: Including run-time hook 'pyi_rth_multiprocessing.py'
656810 INFO: Including run-time hook 'pyi_rth_traitlets.py'
656812 INFO: Including run-time hook 'pyi_rth_pkgres.py'
656815 INFO: Including run-time hook 'pyi_rth_win32comgenpy.py'
656817 INFO: Including run-time hook 'pyi_rth_certifi.py'
656819 INFO: Including run-time hook 'pyi_rth_pyqt5.py'
656822 INFO: Including run-time hook 'pyi_rth_mplconfig.py'
656824 INFO: Including run-time hook 'pyi_rth_mpldata.py'
656826 INFO: Including run-time hook 'pyi_rth_osgeo.py'
656828 INFO: Including run-time hook 'pyi_rth__tkinter.py'
656915 INFO: Looking for dynamic libraries
657083 WARNING: lib not found: mpich2mpi.dll dependency of C:\Users\User\Anaconda3\envs\myenv\Library\bin\mkl_blacs_mpich2_lp64.dll
657237 WARNING: lib not found: mpich2mpi.dll dependency of C:\Users\User\Anaconda3\envs\myenv\Library\bin\mkl_blacs_mpich2_ilp64.dll
657429 WARNING: lib not found: pgf90.dll dependency of C:\Users\User\Anaconda3\envs\myenv\Library\bin\mkl_pgi_thread.dll
657431 WARNING: lib not found: pgf90rtl.dll dependency of C:\Users\User\Anaconda3\envs\myenv\Library\bin\mkl_pgi_thread.dll
657434 WARNING: lib not found: pgc14.dll dependency of C:\Users\User\Anaconda3\envs\myenv\Library\bin\mkl_pgi_thread.dll
657619 WARNING: lib not found: impi.dll dependency of C:\Users\User\Anaconda3\envs\myenv\Library\bin\mkl_blacs_intelmpi_lp64.dll
657635 WARNING: lib not found: msmpi.dll dependency of C:\Users\User\Anaconda3\envs\myenv\Library\bin\mkl_blacs_msmpi_lp64.dll
657962 WARNING: lib not found: msmpi.dll dependency of C:\Users\User\Anaconda3\envs\myenv\Library\bin\mkl_blacs_msmpi_ilp64.dll
658414 WARNING: lib not found: impi.dll dependency of C:\Users\User\Anaconda3\envs\myenv\Library\bin\mkl_blacs_intelmpi_ilp64.dll
660100 WARNING: lib not found: torch_python.dll dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\torch\_C.cp36-win_amd64.pyd
660124 WARNING: lib not found: libzmq.cp36-win_amd64.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\zmq\backend\cython\context.cp36-win_amd64.pyd
660131 WARNING: lib not found: libzmq.cp36-win_amd64.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\zmq\backend\cython\_poll.cp36-win_amd64.pyd
660140 WARNING: lib not found: libzmq.cp36-win_amd64.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\zmq\backend\cython\message.cp36-win_amd64.pyd
660149 WARNING: lib not found: libzmq.cp36-win_amd64.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\zmq\backend\cython\_device.cp36-win_amd64.pyd
660157 WARNING: lib not found: libzmq.cp36-win_amd64.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\zmq\backend\cython\error.cp36-win_amd64.pyd
660165 WARNING: lib not found: libzmq.cp36-win_amd64.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\zmq\backend\cython\_proxy_steerable.cp36-win_amd64.pyd  660180 WARNING: lib not found: libzmq.cp36-win_amd64.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\zmq\backend\cython\socket.cp36-win_amd64.pyd
660189 WARNING: lib not found: libzmq.cp36-win_amd64.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\zmq\backend\cython\_version.cp36-win_amd64.pyd
660201 WARNING: lib not found: libzmq.cp36-win_amd64.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\zmq\backend\cython\utils.cp36-win_amd64.pyd
660663 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_stacktrace_handler.pyd
660684 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_transform_graph.pyd
660711 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_kernel_registry.pyd
660734 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_py_exception_registry.pyd
660756 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_stat_summarizer.pyd
660787 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_events_writer.pyd
660814 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_tfprof.pyd
660837 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_mlir.pyd
660859 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_debug_events_writer.pyd 660880 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_utils.pyd
660904 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_tfe.pyd
60953 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency ofC:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_quantize_training.pyd
660974 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\_pywrap_checkpoint_reader.pyd 661005 WARNING: lib not found: _pywrap_tensorflow_internal.pyd dependency of C:\Users\User\Anaconda3\envs\myenv\lib\site-packages\tensorflow\python\profiler\internal\_pywrap_profiler.pyd 
1 Answers

Solved.

Fixed by simply appending the directory of the missing .dll file to pathex in my .spec file. In my case, the path was 'C:/User/Users/Anaconda3/envs/myenv/Lib/site-packages/torch/lib'. Giving paths to the tensorflow and zmq files also removed their respective warnings.

Sadly, I am still getting other import errors, so it seems like there's a larger issue being avoided.

Related