首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pyinstaller将.py文件和.txt文件合并为.exe文件

使用pyinstaller将.py文件和.txt文件合并为.exe文件
EN

Stack Overflow用户
提问于 2019-10-20 07:09:20
回答 1查看 1.3K关注 0票数 4

我有一个python程序,接收两个文本文件作为输入。我已经使用pyinstaller将这个python程序(一个.py文件)转换为一个.exe文件。运行时的.exe文件给出了FileNotFoundError。但是,当.txt文件被复制到.exe存在的路径时,它工作得很好。我的目的不是复制.txt文件,而是将.txt文件与.exe捆绑在一起,这样就无法访问.txt文件。所有.txt文件依赖项--我想将它与.exe捆绑在一起--最终应该只有一个.exe文件,当我运行它时,它的工作方式应该和运行.exe程序时一样。请给我建议实现相同目标的方法。

我对pyinstaller很陌生。我尝试将.txt文件添加到.spec文件中的数据参数中。但这无法将文本文件复制到显示我的.exe的dist文件夹中。但是,正如我已经提到的,我只需要.exe文件。即使将.exe文件共享给其他无法访问任何文本文件的人,.exe也必须正常运行。

a.datas+=('D:/Trial/src/readme_text_files/readme1.txt','readme_text_files/readme1.txt','readme_text_files'),('D:/Trial/src/readme_text_files/readme2.txt','readme_text_files/readme2.txt',‘readme_text_files’)

上面的代码已经添加到.spec文件中,因此我假设当您运行: pyinstaller spec_filename.spec时,必须将readme_text_files复制到.exe存在的文件夹中。

EN

回答 1

Stack Overflow用户

发布于 2019-10-20 14:45:25

我希望.txt文件与.exe文件捆绑在一起,因此我做了以下工作:

  1. I以下列方式编辑了.spec文件:

A=Analysis(‘mainProgram_edited_for_ datas= .for’,pathex=‘D:\for\src’,binaries=[],datas=datas= 'readme_text_files'),('D:/Trial/src/readme_text_files/readme2.txt','readme_text_files'),.( .spec文件内容的其余部分)

或者只需直接包含目录本身,如下所示:

datas=('C:/Users/njv5kor/eclipse-workspace/Trial/src/readme_text_files/',‘readme_text_files’,

  • 在python代码中添加了以下代码:

def resource_path(relative_path):“获取资源的绝对路径,为dev和PyInstaller工作”“base_path = sys._MEIPASS,除了异常: base_path =os.path.abspath(”)。返回os.path.join(base_path,relative_path)文件=

基本上,pyinstaller将.txt文件捆绑到.py文件中,并创建一个.exe,以了解_MEIPASS的详细信息--参考链接:https://pyinstaller.readthedocs.io/en/v3.3.1/operating-mode.html#how-the-one-file-program-works

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58470789

复制
相关文章

相似问题

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