auto-py-to-exe 遇到的奇葩问题,主程序调用了一个外部文件为.json格式的配置文件,打包后一起无法正确找到该文件,突然想放在一个文件夹下面试试,加了一个文件夹,把json放入文件夹,不和主程序同在根目录下,就成功了,估计add-data命令默认不能和主程序放在同一层级上面,是不是这样,如果是,请小伙伴们避坑啊~?
2条回答 默认 最新
- 菜鸟才能学的更多 2023-02-16 01:09关注
是的,auto-py-to-exe 打包程序使用 PyInstaller 库进行打包,而 PyInstaller 默认会将主程序及其依赖的文件打包为一个单独的可执行文件,这个文件需要包含所有的依赖文件才能正确运行。
在打包过程中,可以使用 --add-data 参数将需要的外部文件(如你的 .json 配置文件)添加到可执行文件中。如果你的配置文件和主程序不在同一个目录下,你可以将它们放在同一个文件夹中,然后使用 --add-data 参数指定这个文件夹的路径和需要包含的文件,这样就能够正确地将配置文件打包到可执行文件中了。
例如,假设你的主程序名为 my_program.py,配置文件名为 config.json,你将它们都放在一个名为 my_project 的文件夹中,那么你可以使用以下命令将它们打包为一个可执行文件:
auto-py-to-exe --onefile --add-data "my_project/config.json;my_project" my_program.py
其中 --add-data 参数指定了需要添加的文件和文件夹路径,语法为 "源文件路径;目标路径",其中目标路径是相对于可执行文件的路径。在本例中,my_project/config.json 是源文件路径,my_project 是目标路径,它表示将 config.json 文件添加到打包后的可执行文件的 my_project 文件夹中。
注意,在打包过程中,auto-py-to-exe 会将源文件复制到打包文件夹中进行打包,所以在使用 --add-data 参数指定文件路径时,应该使用源文件的相对路径而不是绝对路径。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 Mplus跑出来的数据只有原数据的一半
- ¥15 vue项目添加全局处理解决一些开发问题
- ¥40 微信小程序前后端交互
- ¥15 linux安装依赖问题
- ¥50 数据预处理(大量数据)
- ¥15 多设备数据融合可视化显示控制
- ¥15 公众号关键词自动回复超链接
- ¥18 help me! 希望大家来看看 吉~
- ¥15 C++显示超限兔子集结
- ¥15 sql server 2012的下载出错