【发布时间】:2020-01-08 19:48:12
【问题描述】:
我正在尝试将我的 python 代码编译为 Windows 可执行文件,但我遇到了问题。我尝试了“pyinstaller”,但每次我将我的 python 代码编译为 Windows 可执行文件并运行它时,我都会收到一个异常,说“没有名为 XXXX 的模块”我正在使用 face_recognition、numpy 和 opencv,任何想法如何解决这个问题?
!> pyinstaller --hidden-import cv2 --hidden-import face_recognition --hidden-import numpy main.py
2891 INFO: PyInstaller: 3.5
2891 INFO: Python: 2.7.17
2891 INFO: Platform: Windows-10-10.0.18362
2891 INFO: wrote C:\Users\Arman\Desktop\sysFace\main.spec
3008 INFO: UPX is not available.
3017 INFO: Extending PYTHONPATH with paths
['C:\\Users\\Arman\\Desktop\\sysFace', 'C:\\Users\\Arman\\Desktop\\sysFace']
3017 INFO: checking Analysis
3018 INFO: Building Analysis because Analysis-00.toc is non existent
3019 INFO: Initializing module dependency graph...
3054 INFO: Initializing module graph hooks...
3133 INFO: Analyzing hidden import 'cv2'
3133 ERROR: Hidden import 'cv2' not found
3133 INFO: Analyzing hidden import 'face_recognition'
3133 ERROR: Hidden import 'face_recognition' not found
3133 INFO: Analyzing hidden import 'numpy'
3133 ERROR: Hidden import 'numpy' not found
3180 INFO: running Analysis Analysis-00.toc
3305 INFO: Adding Microsoft.VC90.CRT to dependent assemblies of final executable
required by c:\python27\python.exe
10000 INFO: Found C:\WINDOWS\WinSxS\Manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30411.0_none_37e824fec5a2ba27.manifest
10082 INFO: Found C:\WINDOWS\WinSxS\Manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.1_none_3da38fdebd0e6822.manifest
10093 INFO: Found C:\WINDOWS\WinSxS\Manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_acd0e4ffe1daef0a.manifest
10118 INFO: Found C:\WINDOWS\WinSxS\Manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9619_none_accdd623e1ddaffe.manifest
10227 INFO: Searching for assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.9619_none ...
10227 INFO: Found manifest C:\WINDOWS\WinSxS\Manifests\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9619_none_08e065a3a84109b0.manifest
10243 INFO: Searching for file msvcr90.dll
10243 INFO: Found file C:\WINDOWS\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9619_none_08e065a3a84109b0\msvcr90.dll
10243 INFO: Searching for file msvcp90.dll
10243 INFO: Found file C:\WINDOWS\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9619_none_08e065a3a84109b0\msvcp90.dll
10243 INFO: Searching for file msvcm90.dll
10243 INFO: Found file C:\WINDOWS\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9619_none_08e065a3a84109b0\msvcm90.dll
10336 INFO: Found C:\WINDOWS\WinSxS\Manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30411.0_none_37e824fec5a2ba27.manifest
10336 INFO: Found C:\WINDOWS\WinSxS\Manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.1_none_3da38fdebd0e6822.manifest
10336 INFO: Found C:\WINDOWS\WinSxS\Manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_acd0e4ffe1daef0a.manifest
10336 INFO: Found C:\WINDOWS\WinSxS\Manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9619_none_accdd623e1ddaffe.manifest
10336 INFO: Adding redirect Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0, 30729, 9619)
10540 INFO: Caching module hooks...
10728 INFO: Analyzing C:\Users\Arman\Desktop\sysFace\main.py
12764 INFO: Loading module hooks...
12764 INFO: Loading module hook "hook-encodings.py"...
14608 INFO: Looking for ctypes DLLs
14608 INFO: Analyzing run-time hooks ...
14625 INFO: Looking for dynamic libraries
14718 INFO: Looking for eggs
14718 INFO: Using Python library C:\WINDOWS\system32\python27.dll
14733 INFO: Found binding redirects:
[BindingRedirect(name=u'Microsoft.VC90.CRT', language=None, arch=u'amd64', oldVersion=(9, 0, 21022, 8), newVersion=(9, 0, 30729, 9619), publicKeyToken=u'1fc8b3b9a1e18e3b')]
14733 INFO: Warnings written to C:\Users\Arman\Desktop\sysFace\build\main\warn-main.txt
14750 INFO: Graph cross-reference written to C:\Users\Arman\Desktop\sysFace\build\main\xref-main.html
14843 INFO: checking PYZ
14843 INFO: Building PYZ because PYZ-00.toc is non existent
14843 INFO: Building PYZ (ZlibArchive) C:\Users\Arman\Desktop\sysFace\build\main\PYZ-00.pyz
15096 INFO: Building PYZ (ZlibArchive) C:\Users\Arman\Desktop\sysFace\build\main\PYZ-00.pyz completed successfully.
15143 INFO: checking PKG
15143 INFO: Building PKG because PKG-00.toc is non existent
15143 INFO: Building PKG (CArchive) PKG-00.pkg
15206 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
15206 INFO: Bootloader c:\python27\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe
15206 INFO: checking EXE
15206 INFO: Building EXE because EXE-00.toc is non existent
15206 INFO: Building EXE from EXE-00.toc
15237 INFO: Appending archive to EXE C:\Users\Arman\Desktop\sysFace\build\main\main.exe
15487 INFO: Building EXE from EXE-00.toc completed successfully.
15503 INFO: checking COLLECT
15503 INFO: Building COLLECT because COLLECT-00.toc is non existent
15503 INFO: Building COLLECT COLLECT-00.toc
15675 INFO: Redirecting Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0, 30729, 9619)
16583 INFO: Building COLLECT COLLECT-00.toc completed successfully.
操作系统:Windows 10 Pro x64 IDE:Visual Studio 代码 蟒蛇:蟒蛇v3.8 模块:face_recognition、cv2、numpy pyinstaller:pyinstaller 3.5 点子:点子 v19.2.3
在更新我的模块和 pip 到 19.3.1 之后,我尝试了 pyinstaller --hidden-import cv2 --hidden-import face_recognition --hidden-import numpy main.py,当我启动应用程序时,它给了我这个异常:
File "main.py", line 1, in <module>
import face_recognition
File "c:\users\arman\appdata\local\temp\pip-install-jtbivm\pyinstaller\PyInstaller\loader\pyimod03_importers.py", line 395, in load_module
File "site-packages\face_recognition\__init__.py", line 7, in <module>
File "c:\users\arman\appdata\local\temp\pip-install-jtbivm\pyinstaller\PyInstaller\loader\pyimod03_importers.py", line 395, in load_module
File "site-packages\face_recognition\api.py", line 17, in <module>
RuntimeError: Unable to open C:\Users\Arman\Desktop\sysFace\dist\main\face_recognition_models\models\shape_predictor_68_face_landmarks.dat
[11588] Failed to execute script main```
【问题讨论】:
-
你试过这个问题的答案吗:stackoverflow.com/questions/25733467/…?
-
第一个没用。让我试试第二种解决方案。
-
另外,当我使用
--hidden-import XXXX时,在终端中显示“错误:未找到隐藏模块 XXX”。 -
这有点难帮你。您是否有无法编译的示例代码?
-
嗯,有足够的信息,如果您没有解决此问题的解决方案,并不意味着没有解决方案。 :)
标签: python pyinstaller