使用pyinstalle进行打包 exe过大解决方案(五大解决方案)

使用pyinstalle进行打包 exe过大解决方案

1、pyinstaller 打包时 指定目标第三方库

pyinstaller -F -w -i config\title.ico home_tool.py -p venv\Lib\site-packages
使用pyinstalle进行打包 exe过大解决方案(五大解决方案)_第1张图片

2、创造一个虚拟环境,虚拟环境中只导入对应的第三方库

(1)基于python版本创建虚拟环境

在pycharm的file-setting中选中project,然后点击project interpreter的右侧点击添加按钮
使用pyinstalle进行打包 exe过大解决方案(五大解决方案)_第2张图片
使用pyinstalle进行打包 exe过大解决方案(五大解决方案)_第3张图片或者直接重新创建一个工程
使用pyinstalle进行打包 exe过大解决方案(五大解决方案)_第4张图片

在项目路径下就有会生成一个venv路径 venv

项目的依赖库package保存在路径venv\Lib\site-packages下,是这个项目工程的依赖库。
使用pyinstalle进行打包 exe过大解决方案(五大解决方案)_第5张图片

**

3、重复打包的时候 删掉原先编译好的 spec文件以及 build等 重新编辑

**
使用pyinstalle进行打包 exe过大解决方案(五大解决方案)_第6张图片

4、出现创建虚拟依赖智慧,但是 pycharm里的 Terminal中不能自动进入虚拟环境的情况

本来一直打开 terminal,会直接进入对应的虚拟环境,直到有一天更新 pycharm 后,发现打开 terminal 后直接进入了 base 环境,每次都要手动 activate 一下,比较麻烦仔细观察才发现,terminal 使用了 windows 的powershell,如下图所示:
使用pyinstalle进行打包 exe过大解决方案(五大解决方案)_第7张图片
解决办法:
Settings --> Tools --> Terminal --> Shell Path,将 powershell 修改为 cmd.exe,如下图所示:
使用pyinstalle进行打包 exe过大解决方案(五大解决方案)_第8张图片
修改 shell 过后,关掉Terminal ,重新打开则可以看到使用的是 windows 的 cmd shell ,并且会自动跳转到虚拟环境
使用pyinstalle进行打包 exe过大解决方案(五大解决方案)_第9张图片

5、Pycharm设置虚拟环## 标题境,但是pip仍为全局的问题

用Pycharm设置完虚拟环境后,通过命令行进入虚拟环境,pip list仍然为全局pip。也就是用pip安装只会安装到全局目录下。而虚拟环境中没有
解决办法:

第一种办法:看看目录是否为中文(这点我遇到的没解决,但是网上有人遇到,也可能会产生这种问题,也算是一种解决办法)
在pycharm下的终端输入,

echo %path%

使用pyinstalle进行打包 exe过大解决方案(五大解决方案)_第10张图片
查看返回值中的第一个环境变量是否是当前项目下的虚拟环境的目录
既然看到这里,说明你的原因也是如此,还有一个更加可以证明此原因的方法:
在pycharm中依次打开 venv/Scripts/activate.bat, 以文本方式打开,映入眼帘的是不是就是你原来的项目地址
使用pyinstalle进行打包 exe过大解决方案(五大解决方案)_第11张图片
如果返回值中的第一个环境变量中路径出现乱码,那么大概率就是项目目录存在中文的问题,我原先的工程目录是中文的,我在导入虚拟依赖之后发现了中文的这个问题,就给工程名称修改了名字,换了地方,并且重新设置了依赖(没有删掉原先中文目录下已经导入完成的依赖),所以就算是改了名字,但是实际的路径里还是带了中文,所以pip仍为全局的情况
接下来很好处理,删掉venv,重新设置一个虚拟依赖。然后就解决了

你可能感兴趣的:(项目小记录,pycharm,python,ide)