赞
踩
pip install virtualenv
e:\venv> virtualenv my_project # 在venv文件夹中创建一个虚拟环境
- # windows环境
- my_project\scripts\activate
-
- # mac、Linux环境
- source my_project_env/bin/activate
在venv文件夹下或虚拟环境文件夹下进行pip安装
- # 将需要的库导入到txt文件
- 方式一:
- pip freeze > requirements.txt # 有可能把不需要的包也导出
- 方式二:
- pip install pipreqs
- pipreqs ./ --encoding=utf8
-
- # 在虚拟环境中安装需要的Python库
- pip install -r requirements.txt
安装:pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple/
pyinstaller 最重要的两个参数就是 -F 与 -D 参数。
使用 - F 参数, pyinstaller 会将 python 程序打包成单个可执行文件。
使用 - D 参数, pyinstaller 会将 python 程序打包成一个文件夹,运行程序时,需要进入该文件夹,点击运行相应的可执行程序。
简单总结一下:
-F:打包 Python 程序为单个可执行文件
-D:打包 Python 程序为一个文件夹
-i:生成图标,只适用于 Windows 平台
-n:指定打包后生成文件的名称
-w:禁止命令行弹出
- # 将要打包的代码放在venv或虚拟环境文件夹下进行打包
- pyinstaller -F -w main.py
pyinstaller打包过程中报错处理:
环境python3.8.10。解决办法:
方式1:将虚拟环境的scripts添加到环境变量中
方式2:将代码放到虚拟环境的scripts文件夹中,在scripts中封装。
解决办法:在生成的spec文件中,hiddlemodule添加缺少的模块,重新打包pyinstaller xx.spec
往往是由于打包时缺少某个库造成的,比如用pandas读取xls文件,由于没有安装xlrd库,闪退。
解决办法:打包为console或debug模式,查看错误信息【推荐console模式,不推荐debug模式】 console模式举例:
pyinstaller -c demo.py
debug模式举例:
pyinstaller -d all demo.py
然后进入dist文件夹中,将demo.exe拖到命令行窗口(cmd或anaconda Prompt)执行即可,很容易发现出错提示。
pyinstaller踩坑记,缺少依赖、打包错误或运行无效排查过程备忘 - 知乎 (zhihu.com)
由于flask web项目需要依赖静态资源,打包时需要进行指定 。
首先,生成*.spec文件
pyi-makespec app.py
其次,修改spec文件中的datas,指定静态资源相对路径
- # 修改Analysis中的datas
- datas=[('app\\static','app\\static'),('./app/templates','./app/templates')],
-
- # 为了运行exe时有提示,修改EXE中的console
- console=True,
'运行
最后,使用pyinstaller命令打包
pyinstaller -F app.py # 不加-w,以便打包后运行exe时有提示窗口
- # 停用虚拟环境
- deactivate
-
- # 删除虚拟环境
- rmvirtualenv my_project
- cdvirtualenv #导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages。
-
- cdsitepackages # 和上面的类似,但是是直接进入到 site-packages 目录中。
-
- lssitepackages #显示 site-packages 目录中的内容。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。