Exception: Cannot find PyQt5 plugin directories when using Pyinstaller despite PyQt5 not even being used

匿名 (未验证) 提交于 2019-12-03 00:58:01

问题:

A month ago I solved my applcation freezing issues for Python 2.7 as you can see here. I have since adapted my code to python 3.5 (using Anaconda) and it appears to be working. couldn't get pyinstaller working with Anaconda so switched to trying to generate an .exe using the standard Python 3.5 compiler. I am using the same settings as in the link above (pyinstaller --additional-hooks-dir=. --clean --win-private-assemblies pipegui.py), except I get the following error message instead:

`Exception: Cannot find PyQt5 plugin directories` 

This may be related? Except I'm using Pyinstaller and I don't have a setup.py so don't know how I can make use of the solution there, if at all

I find this error message bizarre because I am not using PyQt5, but PyQt4. Here is the full output:

C:\Users\Cornelis Dirk Haupt\PycharmProjects\Mesoscale-Brain-Explorer\src>pyinstaller --additional-hooks-dir=. --clean --win-private-assemblies pipegui.py 62 INFO: PyInstaller: 3.2 62 INFO: Python: 3.5.0 62 INFO: Platform: Windows-10.0.14393 62 INFO: wrote C:\Users\Cornelis Dirk Haupt\PycharmProjects\Mesoscale-Brain-Explorer\src\pipegui.spec 62 INFO: UPX is not available. 62 INFO: Removing temporary files and cleaning cache in C:\Users\Cornelis Dirk Haupt\AppData\Roaming\pyinstaller 62 INFO: Extending PYTHONPATH with paths ['C:\\Users\\Cornelis Dirk Haupt\\PycharmProjects\\Mesoscale-Brain-Explorer',  'C:\\Users\\Cornelis Dirk '  'Haupt\\PycharmProjects\\Mesoscale-Brain-Explorer\\src'] 62 INFO: checking Analysis 62 INFO: Building Analysis because out00-Analysis.toc is non existent 62 INFO: Initializing module dependency graph... 62 INFO: Initializing module graph hooks... 62 INFO: Analyzing base_library.zip ... 1430 INFO: running Analysis out00-Analysis.toc 1727 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-math-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1742 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-runtime-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1742 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-locale-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1758 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-stdio-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1758 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-heap-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1774 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-string-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1774 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-environment-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1774 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-time-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1789 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-filesystem-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1789 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-conio-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1789 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-process-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1805 WARNING: Can not get binary dependencies for file: C:\Anaconda3\api-ms-win-crt-convert-l1-1-0.dll Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 695, in getImports     return _getImports_pe(pth)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe     dll, _ = sym.forwarder.split('.') TypeError: a bytes-like object is required, not 'str' 1805 INFO: Caching module hooks... 1805 INFO: Analyzing C:\Users\Cornelis Dirk Haupt\PycharmProjects\Mesoscale-Brain-Explorer\src\pipegui.py 1992 INFO: Processing pre-find module path hook   distutils 2055 INFO: Processing pre-safe import module hook   six.moves 3181 INFO: Processing pre-find module path hook   site 3181 INFO: site: retargeting to fake-dir 'c:\\users\\cornelis dirk haupt\\appdata\\local\\programs\\python\\python35\\lib\\site-packages\\PyInstaller\\fake-modules' 4298 INFO: Processing pre-safe import module hook   win32com 9975 INFO: Loading module hooks... 9975 INFO: Loading module hook "hook-_tkinter.py"... 10121 INFO: checking Tree 10121 INFO: Building Tree because out00-Tree.toc is non existent 10122 INFO: Building Tree out00-Tree.toc 10184 INFO: checking Tree 10184 INFO: Building Tree because out01-Tree.toc is non existent 10185 INFO: Building Tree out01-Tree.toc 10198 INFO: Loading module hook "hook-matplotlib.py"... 10404 INFO: Loading module hook "hook-pywintypes.py"... 10526 INFO: Loading module hook "hook-xml.py"... 10526 INFO: Loading module hook "hook-pydoc.py"... 10527 INFO: Loading module hook "hook-scipy.linalg.py"... 10527 INFO: Loading module hook "hook-scipy.sparse.csgraph.py"... 10529 INFO: Loading module hook "hook-plugins.py"... 10721 INFO: Processing pre-find module path hook   PyQt4.uic.port_v3 10726 INFO: Processing pre-find module path hook   PyQt4.uic.port_v2 12402 INFO: Loading module hook "hook-OpenGL.py"... 12583 INFO: Loading module hook "hook-PyQt4.QtGui.py"... 12802 INFO: Loading module hook "hook-encodings.py"... 12807 INFO: Loading module hook "hook-PyQt4.uic.py"... 12812 INFO: Loading module hook "hook-PyQt5.QtWidgets.py"... 12813 INFO: Loading module hook "hook-xml.etree.cElementTree.py"... 12813 INFO: Loading module hook "hook-setuptools.py"... 12814 INFO: Loading module hook "hook-scipy.special._ufuncs.py"... 12814 INFO: Loading module hook "hook-PyQt5.QtCore.py"... Traceback (most recent call last):   File "<string>", line 2, in <module> ImportError: DLL load failed: The specified procedure could not be found. Traceback (most recent call last):   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\runpy.py", line 170, in _run_module_as_main     "__main__", mod_spec)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\runpy.py", line 85, in _run_code     exec(code, run_globals)   File "C:\Users\Cornelis Dirk Haupt\AppData\Local\Programs\Python\Python35\Scripts\pyinstaller.exe\__main__.py", line 9, in <module>   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\__main__.py", line 90, in run     run_build(pyi_config, spec_file, **vars(args))   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\__main__.py", line 46, in run_build     PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\building\build_main.py", line 788, in main     build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\building\build_main.py", line 734, in build     exec(text, spec_namespace)   File "<string>", line 16, in <module>   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\building\build_main.py", line 212, in __init__     self.__postinit__()   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\building\datastruct.py", line 178, in __postinit__     self.assemble()   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\building\build_main.py", line 470, in assemble     module_hook.post_graph()   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\building\imphook.py", line 409, in post_graph     self._load_hook_module()   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\building\imphook.py", line 376, in _load_hook_module     self.hook_module_name, self.hook_filename)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\compat.py", line 725, in importlib_load_source     return mod_loader.load_module()   File "<frozen importlib._bootstrap_external>", line 385, in _check_name_wrapper   File "<frozen importlib._bootstrap_external>", line 806, in load_module   File "<frozen importlib._bootstrap_external>", line 665, in load_module   File "<frozen importlib._bootstrap>", line 268, in _load_module_shim   File "<frozen importlib._bootstrap>", line 693, in _load   File "<frozen importlib._bootstrap>", line 673, in _load_unlocked   File "<frozen importlib._bootstrap_external>", line 662, in exec_module   File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\hooks\hook-PyQt5.QtCore.py", line 15, in <module>     binaries = qt_plugins_binaries('codecs', namespace='PyQt5')   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\utils\hooks\qt.py", line 64, in qt_plugins_binaries     pdir = qt_plugins_dir(namespace=namespace)   File "c:\users\cornelis dirk haupt\appdata\local\programs\python\python35\lib\site-packages\PyInstaller\utils\hooks\qt.py", line 38, in qt_plugins_dir     raise Exception('Cannot find {0} plugin directories'.format(namespace)) Exception: Cannot find PyQt5 plugin directories 

I will say I also have no clue what to make of the TypeError: a bytes-like object is required, not 'str'This may be related? I only use binary mode with pickle a handful of times as far as I can tell this is my only usage:

pickle.dump( roiState, open( fileName, "wb" ) ) roiState = pickle.load(open(fileName, "rb")) 

I don't have any errors when I run the application, only getting these errors when trying to generate an .exe using pyinstaller. Why?

Note also that Anaconda3 does pop up in the traceback above (why is it looking for binaries there?) but I:

  1. Uninstalled pyinstaller from Anaconda
  2. Am using the standard Python 3.5 (64-bit) compiler

Only thing I can think of that may be the culprit is that I'm no longer using the developer version of Pyinstaller (it just flat does not run in Python 3.5). I had to use the developer version to solve my freezing issue here when my code was written for python 2.7

回答1:

Uninstall Anaconda and everything works... I conclude that you simply cannot have Anaconda installed and use the standard Python 3.5 compiler at the same time if you're using Pyinstaller. Maybe this is related.

This is not the first time that uninstalling Anaconda appears to solve my issues... If I should report this issue somewhere please comment below. I don't know where.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!