当前位置: 首页 > 知识库问答 >
问题:

在Pyinstaller中包含excel文件和程序

沈俊晤
2023-03-14

我用python编写了代码,打开了一个模板excel文件。每天午夜,它都会将模板复制到一个新的excel文件中,代码会在其中记录当天的数据。我的目标是使用pyinstaller创建一个包含我的代码和模板excel文件的可执行文件。

基本上,我希望能够打开模板excel文件,不管计算机是否包含该文件,通过捆绑excel文件到从pyInster获得的exe文件:

现在我打开excel文件,如下所示:

import os
import openpyxl

theFile = openpyxl.load_workbook(os.getcwd()+"\templateExcel.xlsx")
currentSheet = theFile[theFile.sheetnames[0]]

但是,当我将excel文件作为--add-data"templateExcel.xlsx; templateExcel.xlsx包含到pyInster命令中,并运行exe文件时,它无法检测templateExcel文件的位置。我知道,通过在不同的计算机上运行,os.getcwd()给出了不同的路径,因此它显然无法打开excel文件。因此,我需要一种将excel文件捆绑到exe文件中的方法,这样Python代码就可以找到它,而不管计算机是什么。

共有2个答案

公西宏毅
2023-03-14

请注意:使用“getcwd()”时,您将不会收到所需的结果,它将为您提供执行exe文件的位置。

例如,查看以下长模块:

from os import getcwd
print(getcwd())

如果PyInstaller像您假设的那样工作(将文件相对于某个模块放置),您可以使用file而不是getcwd(),因为它指示模块所在的位置(这是常量,不同于执行exe的位置),但它不是。

不管怎样,@Sezer-BOZKIR的回答应该足够了,请注意我在那里添加的评论。

刘胜泫
2023-03-14

你可以使用;使用onefile选项在Pyinstaller中添加数据文件摘要:

pyinstaller --onefile --nowindow --add-data text.txt;included winprint.py --distpath .

和示例python脚本:

import os 
import sys

os.chdir(sys._MEIPASS)
os.system('included\\text.txt')
 类似资料:
  • 我还使用tkinter用Python3.7编写了一个程序。因为我使用的是外部图片,所以当我将所有内容编译成一个exe时,我需要包含它们。我尝试过执行,但仍然出现以下错误: _特金特。Tcl错误:无法打开“files/bg.png”:没有这样的文件或目录 代码如下: 我做错了什么?我也尝试过添加二进制文件,将该文件添加到我的spec文件中。我真的搞不懂!

  • 问题内容: 我正在使用pyinstaller创建我的python脚本的可执行文件。 在脚本中,我使用了以下导入: 问题是,运行时,它将导致包括Firefox而不是Chrome。在结果文件夹c:… \ dist \ myscript \ selenium \ webdriver中,有一个firefox文件夹,因此它只是跳过了chromedriver,这对我来说是个严重的问题,因为脚本需要与Chrom

  • 问题内容: 我正在为JEE5 Web服务编写单元测试。Web服务的行为取决于文件中设置的属性。因此,我想将我分成一个恒定的部分和一个在两次测试之间更改的部分。 为了查看是否确实可行,我尝试查看是否可以拆分该属性。根据一些说明,我发现了以下几点: web.xml fragment.xml 但是,我在文件上收到验证错误: 必须为元素类型“ web-app”声明属性“ version”。[7] 必须为元

  • 我试图捆绑我的py脚本作为一个. exe使用PyInstaller 2.0。我可以捆绑脚本,但是在我的脚本中,我需要打开一个应该捆绑在exe中的文件(所以它是可移植的)。我做这个有困难... 在我的生活中。是的,我有 我使用PyInstaller 2.0,这在我的电脑上工作正常,但是如果我把exe转移到另一台电脑上,它就不能工作了...PyInstaller 2.0非常新,所以上面的文档很少,出版

  • 我有一个结构如下的maven项目: 我希望maven jar插件在构建jar文件时打包到数据库文件夹中。我尝试过包含这里概述的内容:https://maven.apache.org/plugins/maven-jar-plugin/examples/include-exclude.html,但它找不到目录“../database”(或../../database或../../../database

  • 如何强制pyinstaller使用特定的。打包为exe时的jar文件? 我正在尝试生成一个使用tabla-py-lib的可执行文件。这个库需要一个jar文件tabla-1.0.1-jar-with-dependencies。jar,我的文件中有。py文件夹。这些是myfile中的一些修改。规格: 然而,错误仍然存在。当我从命令行运行我的代码时,函数read_pdf(),来自tabula-py,它使