PyInstaller打包后 使用sh脚本启动
本文介绍如何使用PyInstaller将Python应用程序打包为可执行文件,并通过sh脚本启动。适用于服务器、VPS或主机环境,简化部署流程。
技术简介
PyInstaller是一个用于打包Python应用程序的工具,可以将Python脚本及其依赖项打包为单个可执行文件。sh脚本则用于创建启动命令,简化执行过程。
操作步骤
-
安装PyInstaller
pip install pyinstaller
确保Python环境已安装。
-
打包Python应用程序
pyinstaller --onefile your_script.py
参数–onefile将所有内容打包为单个文件。生成的可执行文件位于
dist/
目录。 -
创建sh启动脚本
#!/bin/bash /path/to/your_script --headless
使用
#!/bin/bash
声明脚本解释器。路径替换为实际可执行文件路径。参数–headless适用于无头模式(服务器环境)。 -
赋予sh脚本执行权限
chmod +x /path/to/your_script.sh
-
运行sh脚本
/path/to/your_script.sh
命令示例
以下示例打包一个名为app.py
的脚本:
pyinstaller --onefile app.py
chmod +x /usr/local/bin/app.sh
echo '/usr/local/bin/dist/app --headless' > /usr/local/bin/app.sh
注意事项
- 确保所有依赖项在打包前已安装。
- 使用
--add-data
参数添加额外文件。 - 测试打包后的文件在目标环境是否正常工作。
- 无头模式下注意日志输出路径。
实用技巧
- 在sh脚本中添加环境变量声明:
export PYTHONPATH=/path/to/libs:$PYTHONPATH
- 使用
--hidden-import
显式包含未自动检测的模块。 - 通过
pyinstaller --clean
清理临时文件。 - 结合systemd创建服务:
[Unit] Description=My App Service After=network.target [Service] ExecStart=/path/to/your_script.sh Restart=always [Install] WantedBy=multi-user.target