【发布时间】:2017-03-14 15:02:42
【问题描述】:
Windows 10、Python 3.5、PyQt5 通过 Pip 安装,pyinstaller 3.2.1 也通过 Pip 安装。我可以制作一个在 Python 下正常运行的 PyQt5 qml 小应用程序。
如果我有一个名为 test.py 的 Python 模块,其中包含:
from PyQt5.QtWidgets import QApplication
from PyQt5.QtQuick import QQuickView
然后做:
pyinstaller main.py
我明白了:
3452 ERROR: Could not find qmake version 5.x, make sure PATH is set correctly or try setting QT5DIR.
3452 ERROR: Cannot find QT_INSTALL_QML directory, "qmake -query QT_INSTALL_QML" returned nothing
接着是:
Traceback (most recent call last):
File "C:\Python35\Scripts\pyinstaller-script.py", line 11, in <module>
load_entry_point('PyInstaller==3.2.1', 'console_scripts', 'pyinstaller')()
File "c:\python35\lib\site-packages\PyInstaller\__main__.py", line 90, in run
run_build(pyi_config, spec_file, **vars(args))
File "c:\python35\lib\site-packages\PyInstaller\__main__.py", line 46, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "c:\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:\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:\python35\lib\site-packages\PyInstaller\building\build_main.py", line 212, in __init__
self.__postinit__()
File "c:\python35\lib\site-packages\PyInstaller\building\datastruct.py", line 161, in __postinit__
self.assemble()
File "c:\python35\lib\site-packages\PyInstaller\building\build_main.py", line 470, in assemble
module_hook.post_graph()
File "c:\python35\lib\site-packages\PyInstaller\building\imphook.py", line 409, in post_graph
self._load_hook_module()
File "c:\python35\lib\site-packages\PyInstaller\building\imphook.py", line 390, in _load_hook_module
attr_value = sanitizer_func(attr_value)
File "c:\python35\lib\site-packages\PyInstaller\building\utils.py", line 466, in format_binaries_and_datas
src_root_path_or_glob))
FileNotFoundError: Path or glob "Qt" not found or matches no files.
如果我注释掉 test.py 中的第二行(关于 QtQuick 的那一行)PyInstaller 成功。
我无法指定 qmake 的路径,因为我的机器上没有 qmake。我真的不明白为什么我需要 qmake?
【问题讨论】:
-
FWIW 我在从 pip3 和 pyinstaller 3.2.1 安装的 OSX Sierra / Python 3.5 / PyQt5 上遇到同样的错误
标签: python pyqt pyqt5 pyinstaller qt-quick