栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pyinstaller打包pytorch出现错误:OSError: could not get source code

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pyinstaller打包pytorch出现错误:OSError: could not get source code

前言

 第一次使用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, 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 "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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971740.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号