Python程序的运行必须要有Python的环境,但是程序编出来是用的,如果是给别人用,而他/她的电脑上又没有Python程序运行的环境怎么办呢?总不能让他/她去安装一个吧?这时我们就要将Python程序打包为exe可执行文件,这样,在Windows/Linux(对应平台分别打包)平台下,就可以直接运行该程序,不论有没有Python环境。
写在前面:本文主要记录python程序的打包。其实windows和ubuntu下打包的流程基本一致,不过我在ubuntu打包相同程序的时候发现最好是开一个虚拟环境来做打包。
开发IDE:Pycharm 2022.3.2 professional, Anaconda。
一、打包exe
1、创建虚拟环境
在Pycharm右下角的Interpreter选择Add New Interpreter,选择新建虚拟环境,同时勾选Inherit global site-packages,这样复制了一份base的环境,可以免去包的重复安装。
2、打开pycharm的terminal,输入以下指令安装Pyinstaller模块。
pip install Pyinstaller
3、进行exe打包
执行Pyinstaller模块的功能。
Pyinstaller -F 文件名.py
打包成功。
4、查看打包完成的exe
二、遇到的问题
The 'pathlib' package is an obsolete backport of a standard library package.....
conda remove pathlib
不过要看一下运行后的指令,我在ubuntu上遇到这个问题的时候执行这个命令会询问是否把原本环境里很多的包卸载掉,而windows没遇到。没找到相关的解释。最后我在ubuntu上的情况是创建一个虚拟环境安装完Pyinstaller后,执行conda remove pathlib更新后,对程序中需要用到的包重新pip安装,比较麻烦(可能还涉及换源等)。