pyinstaller 打包传递变量给代码
时间: 2024-09-20 20:10:01 浏览: 45
PyInstaller是一个用于将Python应用程序打包成独立可执行文件的工具,它支持Windows、Linux和Mac OS等平台。当你想要打包一个Python脚本,并希望在运行时传递一些变量或参数给程序,可以使用命令行选项或者配置文件。
**通过命令行传递参数:**
在命令行中,你可以直接通过`--add-data`选项将数据文件包含到生成的可执行文件中,同时作为参数传递。例如:
```bash
pyinstaller --onefile my_script.py --add-data "data.txt=my_data" --runtime-hook my_data_loader.py
```
这里,`my_data.txt`就是你要传递的数据,`my_data_loader.py`则是一个自定义的hook,可以在其中获取并处理这些数据。
**配置文件(spec文件)传递变量:**
另一种方式是创建一个`*.spec`配置文件,这允许你在更精细的级别控制打包过程。在`build_exe`部分,你可以设置`hiddenimports`或` datas` 来指定数据文件及其访问路径。然后在主程序中,你可以使用`sys.argv`来获取命令行参数:
```python
# my_script.spec
a = Analysis(['my_script.py'], ...)
datas = [('data', 'data.txt')]
...
exe = EXE(a, name='my_script', options=['--noconsole'], icon='app.ico', datas=datas)
```
在`my_script.py`里,你可以像这样读取参数:
```python
import sys
data_path = sys.argv[1] if len(sys.argv) > 1 else 'default_value'
```
阅读全文