pyinstaller 常用参数
所谓的常用参数,就是指:
- 不想看详细帮助
- 不关心版本。一来
pip list
就能知道版本,不需要专门记 pyinstaller 的参数。二来能用就行(达到生成 exe 的目的) - 不需要打包配置文件之类的额外资源。所谓的配置就是可用随时修改;其他的数据文件无论是什么格式还是需要程序读取解析——不像一般非脚本语言,StringTable 资源编译前 IDE 会处理,编译后处理过程自动带入 exe,程序直接使用。
那么最少要记住的参数(不分先后)如下:
<source_file>
这个不要解释了,没源代码怎么生成 exe[-D|-F]
(默认)-D
除了主程序 exe,引用库之类的在同目录下生成多个文件。
-F
(推荐)只生成单独一个 exe 文件,现今不缺硬盘空间,这个方便管理。[-c|-w]
(默认) -c
控制台应用没什么好说的。针对用 tkinter 之类的有窗体应用,从控制台启动就关联输出到当前控制台,双击启动就在主窗体后开启了一个控制台。无论哪种启动,都可以随时用 print()
输出任意信息。建议这种模式生成 exe 作为调试版本。
-w
双击启动主窗体后不会有控制台,建议生成 exe 作为正式版。程序中无需注释 print()
语句。
生成有以下输出:
build
子目录,应该是零时目录,删除dist\*.exe
文件名去后缀和源代码文件名去后缀相同,移到上级目录(和源文件处于同一目录,配置文件之类的相对位置也就一致了)。dist
目录删除- 和源代码同目录、同名的
.spec
文件,删除
启动目录的注意事项
.py 源代码执行时 sys.argv[0]
和 __file__
是相同的;变成 exe 执行后,前者还是 exe 文件(可能带路径),后者就指向了%temp%
下的随机目录(虽然 .py 文件名照旧)。所以:
- 始终用
os.path.dirname(os.path.abspath(sys.argv[0]))
取启动路径 - 也不要用
sys.argv[0]
改/加后缀去合成配置文件。比如源文件是 some-app.py
配置用 some-app.config
,如果 exe 被改了名变成 some-app.debug.exe
不就抓瞎了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)