You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Python脚本转为exe后控制台闪退报错,如何解决?

解决Python打包exe后Yandex.Disk上传报错问题

问题描述

该代码在IDLE中运行正常,可将文件上传至Yandex.Disk,但转换为.exe文件后,启动控制台立即出现报错:“Traceback (most recent call last): File"yadisk\client.py", line 227”。已尝试重新安装yadisk模块但无效,请问该如何解决?

相关代码

import yadisk
import os
from datetime import datetime

y = yadisk.YaDisk(token="TOKEN")

def run(path):
    date = datetime.strftime(datetime.now(), "%d.%m.%Y-%H.%M.%S")
    y.mkdir(f'/test/{date}')

    for address, dirs, files in os.walk(path):
        for dir in dirs:
            y.mkdir(f'/test/{date}/{dir}')
            print(f'Papka {dir} created')
        for file in files:
            print(f'File {file} downloaded')
            y.upload(f'{address}/{file}', f'/test/{date}/{file}')
    print("DONE")

if __name__ == '__main__':
    run(r'C:\Users\user.DESKTOP-IV3GN0E\Desktop')

解决方法

  • 完善打包工具参数:若使用PyInstaller,添加--hidden-import=yadisk确保依赖被正确打包,命令示例:
    pyinstaller --onefile --hidden-import=yadisk your_script.py
  • 捕获完整报错信息:修改代码添加异常捕获,获取完整堆栈信息以定位问题:
    if __name__ == '__main__':
        try:
            run(r'C:\Users\user.DESKTOP-IV3GN0E\Desktop')
        except Exception as e:
            import traceback
            traceback.print_exc()
            input("Press Enter to exit...")
    
    重新打包后运行,根据完整错误信息针对性处理(如网络权限、文件路径、依赖缺失等)。
  • 手动添加依赖文件:若yadisk存在未被自动打包的配置或动态库,用--add-data参数手动引入,Windows下命令示例:
    pyinstaller --onefile --add-data "C:\PythonXX\Lib\site-packages\yadisk;yadisk" your_script.py
    (替换C:\PythonXX为你的Python安装路径)
  • 切换打包工具:尝试使用cx_Freeze或Nuitka等其他打包工具,不同工具的打包逻辑可能规避该问题。

内容的提问来源于stack exchange,提问作者Amir Samatov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:45:10