python 生成的EXE file不可以正常运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 生成的EXE file不可以正常运行相关的知识,希望对你有一定的参考价值。

求问 我用python生成了一个EXE文件 然后把它放在一个文件夹里面 当做测试的时候 我把包括这个EXE文件的文件夹完全复制粘贴 得到了一个备份 但是在备份文件夹里面 这个EXE不可以运行

一、安装 pyinstaller

pip install pyinstaller

二、使用 pyinstaller 命令

pyinstaller -F --icon=my.ico test.py #打包成exe,并设置图标

pyinstaller -F -w yourfilename.py #打包成exe,且不包含控制台

其他参数:

一般 python GUI编程才用到 打包成exe

参考技术A

显示的错误是什么呢?

pip install pyinstaller

可以使用 pyinstaller -F *.py 生成 exe

pyinstaller --onefile 生成0KB exe

【中文标题】pyinstaller --onefile 生成0KB exe【英文标题】:pyinstaller --onefile generates 0KB exe 【发布时间】:2020-12-17 08:30:50 【问题描述】:

我编写了一个 python 脚本,它将文件夹中存在的所有 pdf 转换为 docx(在 wincom 包(pywin32)的帮助下)。如果我只在我的 windows10 x64 机器上运行 python 脚本,脚本可以正常工作,但是当我通过“pyinstaller --onefile pdf2docx.py”生成 exe 时,它​​最初会生成一个大小(11MB)的 exe,但是一旦 exe 完全生成它变成 0 KB。

这是我的代码

import os, json, traceback, sys, shutil
import win32com.client
from datetime import datetime
from inspect import currentframe

# Global Variables
logfile = open("log.txt", 'a+')

# Returns Current line number (for Debugging purpose)
def get_linenumber():
    cf = currentframe()
    return "Line No: "+str(cf.f_back.f_lineno)

# Handels Error
def handel_error(line_no = None ,description = None, data = None):
    log(f"Ended with Error(logged in Error.txt): datetime.now()\n'-'*80\n")
    err = traceback.format_exc()
    err_path= f"Error.txt"
    with open(err_path,"a+") as f:
        f.write(f"\ndatetime.now()\n'-'*100\nUnexpected error:\ndescription : data at line_no\nerr\nstr(sys.exc_info())\n")

#  Returns dictionary from json file
def read_config(config):
    with open(config, 'r') as f:
        return json.load(f)

# logs into log(txt format) file
def log(text, file = logfile):
    file.write(f"text\n")

# Converts All pdf files from PDF directory to Word file and place it in DOC directory (Directories are provided in the config.json file)
# If pop-up appears, check the checkbox Don't show again and press ok
def pdf2docx(pdf_dir,docx_dir):
    for fle in os.listdir(pdf_dir):
        pdf = os.path.join(pdf_dir, fle)
        name,ext = os.path.splitext(fle)
        if ext == '.pdf':
            try:
                log(f"Processing : fle")
                wb = word.Documents.Open(pdf)
                out_file = os.path.abspath(f"docx_dir\\name.docx")
                print("Processing: ",fle)
                wb.SaveAs2(out_file, FileFormat=16) # file format for docx
                log("success...")
                wb.Close()
            except:
                handel_error()
        else:
            log(f"Not a pdf file: fle")

if __name__ == "__main__":
    try:
        # Reading the configuration file
        base_dir = os.path.dirname(os.path.abspath(__file__))
        config = read_config(f"base_dir\\config.json")
        pdf_dir = config['pdfs']
        docx_dir = config['docx']
        
        log(f"Started: datetime.now()\n")

        # Converting pdf to word
        word = win32com.client.Dispatch("Word.Application")
        word.visible = 0
        
        pdf2docx(pdf_dir,docx_dir)

        word.Quit()

        log(f"\nEnded: datetime.now()\n'-'*80\n")
    except:
        handel_error()

我更感兴趣的是了解根本原因而不是解决方案。请帮助我并提前致谢。 :)

【问题讨论】:

【参考方案1】:

我发现了问题。

有一个企业应用程序(语义端点保护)阻止 pyinstaller 生成 exe 文件并将其视为有害软件。

在就此事件联系相关团队后,现在它成功生成了exe并且运行良好。

【讨论】:

以上是关于python 生成的EXE file不可以正常运行的主要内容,如果未能解决你的问题,请参考以下文章

python生成exe文件

请问python的打包程序 pyinstaller 怎么用啊?

python 生成的exe 怎么运行

Qt编译生成的exe无法执行

VS2010 C++ MFC写的程序编译可以正常运行,但是我想直接运行,DEBUG里找不到EXE文件

您好,win7环境下用cxfreeze打包一个python34 gui工程,运行exe文件时,可以正