如何在运行时使用pyinstaller创建的.exe从unique.txt文件访问数据

oyjwcjzk  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(386)

我正在从事一个python项目,该项目根据姓名列表生成作为PDF的唯一文凭/证书。该程序将名字列表读入python列表,然后将每个名字“粘贴”到新的空白文凭上。我正在使用pypdf4和reportlab模块来实现这一点。我正在使用pycharm,当我在ide中运行它时,程序运行得非常好。
问题是我想把这个给一个对编程一无所知的朋友。我想给他一个包含可执行文件的文件夹,并在同一文件夹中生成输出PDF。他所要做的就是向目录中添加2个文件(一个姓名列表和一个文凭模板),然后双击可执行文件。我尝试使用pyinstaller进行此操作,但在访问数据文件时遇到问题。
该程序使用两个数据文件:names.txt(姓名列表)和template.pdf(空白文凭)。我导航到我的项目目录并运行 pyinstaller --onefile main.py . 运行.exe后,我得到的错误如下: FileNotFoundError: [Errno 2] No such file or directory: 'names.txt' 我试着用 --add-data pyinstaller的选项,但我不确定这是正确的想法。我需要这个可执行文件在运行时查看它自己的工作目录,并使用名为names.txt和template.pdf的文件,用户将这些文件添加到目录中。
这有意义吗?甚至有可能吗?任何帮助都将不胜感激。

=======更新=======

下面是运行后项目目录的映像 pyinstaller --onefile --add-data 'names.txt:.' --add-data 'template.pdf:.' main.py :

下面是main.spec文件中相关行的图像:

即使我将names.txt添加到dist文件夹,当我运行main.exe时,也会出现相同的错误。

ewm0tg9j

ewm0tg9j1#

请出示证件 main.conf 它是由pyinstaller创建的。
应该有一个部分 datas=[('PATH_TO_FILE\\names.txt', '.'),('PATH_TO_FILE\\template.pdf', '.')] 其中路径\到\文件是绝对路径

相关问题