首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将包含多个数据文件的Python文件转换为.exe格式?

如何将包含多个数据文件的Python文件转换为.exe格式?
EN

Stack Overflow用户
提问于 2021-05-23 15:46:50
回答 1查看 44关注 0票数 0

我是新的和Python和编程。我试着写的代码需要一个.docx,一个.xlsx和一个图像文件才能正常工作。当使用py2exe将其转换为.exe格式时,出现问题,我的程序无法打开!我刚刚修改了setup.py文件,如下所示:

代码语言:javascript
运行
复制
import os
from distutils.core import setup
import py2exe

import tkinter as tk
from tkinter import ttk
import sys
import os
import pandas as pd
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_ALIGN_PARAGRAPH

Mydata_files = [('Data.docx', ['C:/Users/Murat/Desktop/Combobox/Data.docx']),
                   ('Data.xlsx', ['C:/Users/Murat/Desktop/Combobox/Data.xlsx']),
                   ('Logo.gif', ['C:/Users/Murat/Desktop/Combobox/Logo.gif'])]

setup(console=['Combobox.py'],
      data_files = Mydata_files,
      options={"py2exe":{"includes": ["lxml._elementpath"], "unbuffered": True, "optimize": 2}})

现在,我可以在dist文件夹中看到我的数据文件,但我的代码引发了权限错误:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "Combobox.py", line 94, in <module>
  File "pandas\util\_decorators.pyc", line 299, in wrapper
  File "pandas\io\excel\_base.pyc", line 336, in read_excel
  File "pandas\io\excel\_base.pyc", line 1057, in _init_
  File "pandas\io\excel\_base.pyc", line 938, in inspect_excel_format
  File "pandas\io\common.pyc", line 651, in get_handle
PermissionError: [Errno 13] Permission denied: 'Data.xlsx

在我的代码中,关于Data.xlsx文件的代码行如下:

代码语言:javascript
运行
复制
df=pd.read_excel("Data.xlsx")
EN

回答 1

Stack Overflow用户

发布于 2021-05-23 15:59:30

您应该做的是在最后使用input()命令,在关闭控制台之前等待用户

另外,请在编写脚本时始终使用main,以免在导入时出现异常行为

代码语言:javascript
运行
复制
if __name__ == '__main__': #Use dunder method as a best practice

Mydata_files = []
for files in os.listdir("C:/Users/Murat/Desktop/Combobox/"):
    f1 = "C:/Users/Murat/Desktop/Combobox/" + files
    if os.path.isfile(f1):
        f2 = 'images', [f1]
        Mydata_files.append(f2)

setup(
    console=['trypyglet.py.py'],
    data_files=Mydata_files,
    options={
        "py2exe": {
            "unbuffered": True,
            "optimize": 2
        }
    }
)
input = input() # Use input to wait for the user
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67657392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档