欧阳枫落 2022-04-26 21:04 采纳率: 0%
浏览 591
已结题

pyinstaller 打包torch程序为exe运行出错

问题遇到的现象和发生背景

打包工具:pyinstaller
流程:
1.编写main.spec
2.运行pyinstaller main.spec
3.在生成的dist/AiLioBox 下通过dos窗口运行main.exe

问题相关代码,请勿粘贴截图

打包代码:

import torch
import os
os.environ["PYTORCH_JIT"] = "0"
if __name__ == '__main__':
    print("hellowWorld!")

spec内容:

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None
files = ['ttt.py']
all_data = [
    ]
# 分析实例
a = Analysis(
# 可以在命令行中输入的Python脚本
files,
             pathex=[],
             binaries=[],
             datas=all_data,
             hiddenimports=[

             ],
             hookspath=[],
             hooksconfig={},
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(pyz,
          a.scripts, 
          [],
          exclude_binaries=True,
          name='main',
          debug=True,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True,
          disable_windowed_traceback=False,
          target_arch=None,
          codesign_identity=None,
          entitlements_file=None )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas, 
               strip=False,
               upx=True,
               upx_exclude=[],
               name='AiLioBox')
运行结果及报错内容
Traceback (most recent call last):
  File "ttt.py", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "torch\__init__.py", line 137, in <module>
    raise err
OSError: [WinError 126] 找不到指定的模块。 Error loading "D:\Documents\A-Start\AiLioBox2.0\dist\AiLioBox\torch\lib\shm.dll" or one of its dependencies.
[16172] Failed to execute script 'ttt' due to unhandled exception!
我的解答思路和尝试过的方法

1.在hiddenimports中添加intel-openmp
2.在hiddenimports中添加pkg_resources.py2_warn
3.在binaries里添加(r'D:\ProgramData\Anaconda3\envs\ai_env\Lib\site-packages\torch\lib','.')
均为此报错

我想要达到的结果

正常输出hellowWorld!
谢谢大家

  • 写回答

1条回答 默认 最新

  • 欧阳枫落 2022-04-28 11:46
    关注

    已经解决!
    解决方案:不要用conda的环境打包,直接用外python,建议使用python3.7

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月6日
  • 已采纳回答 4月28日
  • 修改了问题 4月27日
  • 创建了问题 4月26日

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同