第一次使用pyinstaller打包exe,结果出现了这种问题,也是各种百度、谷歌了好久之后才找到了可行的解决方法。
环境 windows10
python3.8.9
pytorch1.8.2
Traceback (most recent call last): File "torch_utils_internal.py", line 55, in get_source_lines_and_file File "inspect.py", line 979, in getsourcelines File "inspect.py", line 798, in findsource OSError: could not get source code The above exception was the direct cause of the following exception: Traceback (most recent call last): File "main.py", line 19, inFile " ", line 991, in _find_and_load File " ", line 975, in _find_and_load_unlocked File " ", line 671, in _load_unlocked File "PyInstallerloaderpyimod03_importers.py", line 487, in exec_module File "my01utilsmy01_get_train_record.py", line 5, in File " ", line 991, in _find_and_load File " ", line 975, in _find_and_load_unlocked File " ", line 671, in _load_unlocked File "PyInstallerloaderpyimod03_importers.py", line 487, in exec_module File "utilutil.py", line 16, in File " ", line 991, in _find_and_load File " ", line 975, in _find_and_load_unlocked File " ", line 671, in _load_unlocked File "PyInstallerloaderpyimod03_importers.py", line 487, in exec_module File "mm01_pmm01_p_main.py", line 17, in File " ", line 991, in _find_and_load File " ", line 975, in _find_and_load_unlocked File " ", line 671, in _load_unlocked File "PyInstallerloaderpyimod03_importers.py", line 487, in exec_module File "mm01_ptoolstrain_mm_p.py", line 8, in File " ", line 991, in _find_and_load File " ", line 975, in _find_and_load_unlocked File " ", line 671, in _load_unlocked File "PyInstallerloaderpyimod03_importers.py", line 487, in exec_module File "detectron2engine__init__.py", line 11, in File " ", line 991, in _find_and_load File " ", line 975, in _find_and_load_unlocked File " ", line 671, in _load_unlocked File "PyInstallerloaderpyimod03_importers.py", line 487, in exec_module File "detectron2enginehooks.py", line 19, in File " ", line 991, in _find_and_load File " ", line 975, in _find_and_load_unlocked File " ", line 671, in _load_unlocked File "PyInstallerloaderpyimod03_importers.py", line 487, in exec_module File "fvcorenn__init__.py", line 4, in File " ", line 991, in _find_and_load File " ", line 975, in _find_and_load_unlocked File " ", line 671, in _load_unlocked File "PyInstallerloaderpyimod03_importers.py", line 487, in exec_module File "fvcorennfocal_loss.py", line 52, in File "torchjit_script.py", line 986, in script File "torchjitfrontend.py", line 240, in get_jit_def File "torch_utils_internal.py", line 62, in get_source_lines_and_file OSError: Can't get source for . TorchScript requires source access in order to carry out compilation, make sure original .py files are available. [20628] Failed to execute script 'main' due to unhandled exception!
这个错误花了好长时间才算解决了,也尝试了网上的各种解决方法,终于找到一种能解决问题的方法,如下:
只需要在import torch 上面无脑加入一下代码就好了,我报错的模块是main文件,打包的也是main文件,所以直接在main的import torch上面加入了一下代码。我的其它模块也又使用import torch,但是不需要这样操作也可以。
def script_method(fn, _rcb=None):
return fn
def script(obj, optimize=True, _frames_up=0, _rcb=None):
return obj
import torch.jit
script_method1 = torch.jit.script_method
script1 = torch.jit.script
torch.jit.script_method = script_method
torch.jit.script = script



