将脚本转换为 exe 后出现“TorchScript 需要访问源代码才能执行编译”错误

Jor*_*e96 7 python pyinstaller torch pytorch torchvision

我正在尝试使用 pyinstaller 将脚本转换为 exe 脚本使用的是 tim esler 在此处找到的来自 facenet_pytorch 的 inception resnet v1 模型

运行转换后的脚本 exe 后出现以下错误

回溯(最近一次调用最后一次):

文件“site-packages\torch_utils_internal.py”,第 46 行,在 get_source_lines_and_file 中

getsourcelines 中的文件“inspect.py”,第 955 行

findsource 中的文件“inspect.py”,第 786 行

OSError:无法获取源代码

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用最后一次):

文件“Fcenet-Pytorch\Test Rec2.py”,第 1 行,在

文件“”,第 983 行,在 _find_and_load 中

文件“”,第 967 行,在 _find_and_load_unlocked

文件“”,第 677 行,在 _load_unlocked 中

文件“c:\users\jorda\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”,第 623 行,在 exec_module exec(bytecode, module. dict )

文件“site-packages\facenet_pytorch__init__.py”,第 1 行,在

# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)

文件“”,第 983 行,在 _find_and_load 中

文件“”,第 967 行,在 _find_and_load_unlocked

文件“”,第 677 行,在 _load_unlocked 中

文件“c:\users\jorda\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”,第 623 行,在 exec_module exec(bytecode, module. dict )

文件“site-packages\facenet_pytorch\models\inception_resnet_v1.py”,第 1 行,在

文件“”,第 983 行,在 _find_and_load 中

文件“”,第 967 行,在 _find_and_load_unlocked

文件“”,第 677 行,在 _load_unlocked 中

文件“c:\users\jorda\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”,第 623 行,在 exec_module exec(bytecode, module. dict )

文件“site-packages\torch__init__.py”,第 367 行,在

文件“”,第 983 行,在 _find_and_load 中

文件“”,第 967 行,在 _find_and_load_unlocked

文件“”,第 677 行,在 _load_unlocked 中

文件“c:\users\jorda\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”,第 623 行,在 exec_module exec(bytecode, module. dict )

文件“site-packages\torch\distributions__init__.py”,第 112 行,在

文件“”,第 983 行,在 _find_and_load 中

文件“”,第 967 行,在 _find_and_load_unlocked

文件“”,第 677 行,在 _load_unlocked 中

文件“c:\users\jorda\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”,第 623 行,在 exec_module exec(bytecode, module. dict )

文件“site-packages\torch\distributions\von_mises.py”,第 54 行,在

脚本中的文件“site-packages\torch\jit__init__.py”,第 1287 行

文件“site-packages\torch\jit\frontend.py”,第 164 行,在 get_jit_def 中

文件“site-packages\torch_utils_internal.py”,第 53 行,在 get_source_lines_and_file 中

OSError: 无法获取 . TorchScript 需要访问源代码才能进行编译,请确保原始 .py 文件可用。原始错误:无法获取源代码

[4348] 无法执行脚本 Test Rec2

我在网上找到的一些解决方案是将 torchvision 降级到 0.2.2.post3 但这会阻止原始脚本运行

我已经尝试了各种 hiddenimports 仍然出现相同的错误

知道如何解决吗?

系统:Windows 10

蟒蛇 3.7

火炬 1.5.0

火炬视觉 0.6.0

pyinstaller 3.6

facenet-pytorch 2.2.9