学习python也有一段时间了,最近有项目需求,需要对pytest打包,按照正常的打包流程,打包后,发现仍不能完整脱离环境运行,遂对pytest的pyinstaller打包方式进行了一些钻研
1. Pyinstaller 的安装
python环境下,cmd输入使用
pip install pyinstaller
进行安装
特别注意: 如果是默认源,建议切换为国内源
2. pyinstaller 常用的打包参数
pyinstaller xxxx.py # 表示带命令行多文件打包
pyinstaller -F xxxx.py # 带命令行单文件打包
pyinstaller -w xxxx.py # 不带命令行多文件打包
pyinstaller -Fw xxxx.py # 不带命令行单文件打包
特别注意: 如果是带资源文件, 建议使用多文件打包,或者使用其他参数带资源文件的单文件打包
3. pyinstaller 如何打包 pytest
3.1 组织好pytest的项目工程
熟悉pytest的同学们知道,pytest是需要以test_xxx.py或者xxx_test.py的文件名来组成的,我们接下来的打包入口文件就以这些文件为准。
3.2 使用pyinstaller 进行打包
当我们使用 pyinstaller test_xxxx.py
进行pytest打包后,在运行exe时,会出现找不到用例的情况,此时我们需要将 test_xxxx.py 放入打包后的文件夹
3.3 使用pyinstaller 对pytest的插件打包
当我们使用到pytest的一些插件(plugin),此时我们使用3.2中的步骤,仍然是不行的,此时就需要对打包文件夹做一些改动。
在网络上找了一圈发现,相关pytest 插件打包方式还没人发过帖子,所以故开此贴进行简略讲解。
此时我们只需要将插件所在的源码包(通常在 site-packages 里面的某个目录),复制到打包后的文件夹,即可完成打包。