云烟成雨 发表于 2023-4-6 14:49

pyinstaller打包的时候怎么把配置文件排除在外

我的python程序读取了同目录下的一个config.py文件里的一些参数,我打包成exe的时候想把这个文件以源码方式存放,以便编辑。
直接打包的时候发现我的config.py也打包了,无法编辑了,
我百度了一下,有人说可以改spec,修改data参数,我试了一下确实可以,config.py是源码存放了,但是里面的参数改了并不起作用,参数跟打包前的参数一样,我打包后再修改config.py就无效了,这个怎么解决?

sgbyg 发表于 2023-4-6 15:01

把后缀改为txt试试只要不是py后缀按理来说不会被打包进去

云烟成雨 发表于 2023-4-6 15:09

sgbyg 发表于 2023-4-6 15:01
把后缀改为txt试试只要不是py后缀按理来说不会被打包进去

通过data参数可以排除在外面,但是参数不会生效,参数是打包前的参数,打包后再改参数不会影响程序执行。比如.py里原先有个参数"a": 1, 打包后改成了2,但程序还是1

sgbyg 发表于 2023-4-6 15:17

云烟成雨 发表于 2023-4-6 15:09
通过data参数可以排除在外面,但是参数不会生效,参数是打包前的参数,打包后再改参数不会影响程序执行。 ...

data参数把config.py文件添加进程序里
没有参与编译!= 排除在外面
在程序里是修改不了的
解决办法就是不使用data参数添加进程序里

woflant 发表于 2023-4-6 15:39

配置文件可使用ini格式,有专门读写库configparser

Niuer 发表于 2023-4-6 15:47

用py-to-exe吧

一只大菜猫 发表于 2023-4-6 16:21

本帖最后由 一只大菜猫 于 2023-4-6 16:26 编辑

要写成INI,然后用configparser读取。主要看你源码是怎么写的,如果你用import,然后引用的话,肯定不行的

云烟成雨 发表于 2023-4-6 17:27

一只大菜猫 发表于 2023-4-6 16:21
要写成INI,然后用configparser读取。主要看你源码是怎么写的,如果你用import,然后引用的话,肯定不行的

刚改成了ini和configparse,可以了,感谢
页: [1]
查看完整版本: pyinstaller打包的时候怎么把配置文件排除在外