使用pyinstalle进行打包 exe过大解决方案
1、pyinstaller 打包时 指定目标第三方库
pyinstaller -F -w -i config\title.ico home_tool.py -p venv\Lib\site-packages
2、创造一个虚拟环境,虚拟环境中只导入对应的第三方库
(1)基于python版本创建虚拟环境
在pycharm的file-setting中选中project,然后点击project interpreter的右侧点击添加按钮
或者直接重新创建一个工程
在项目路径下就有会生成一个venv路径 venv
项目的依赖库package保存在路径venv\Lib\site-packages下,是这个项目工程的依赖库。
**
3、重复打包的时候 删掉原先编译好的 spec文件以及 build等 重新编辑
**
4、出现创建虚拟依赖智慧,但是 pycharm里的 Terminal中不能自动进入虚拟环境的情况
本来一直打开 terminal,会直接进入对应的虚拟环境,直到有一天更新 pycharm 后,发现打开 terminal 后直接进入了 base 环境,每次都要手动 activate 一下,比较麻烦仔细观察才发现,terminal 使用了 windows 的powershell,如下图所示:
解决办法:
Settings --> Tools --> Terminal --> Shell Path,将 powershell 修改为 cmd.exe,如下图所示:
修改 shell 过后,关掉Terminal ,重新打开则可以看到使用的是 windows 的 cmd shell ,并且会自动跳转到虚拟环境
5、Pycharm设置虚拟环## 标题境,但是pip仍为全局的问题
用Pycharm设置完虚拟环境后,通过命令行进入虚拟环境,pip list仍然为全局pip。也就是用pip安装只会安装到全局目录下。而虚拟环境中没有
解决办法:
第一种办法:看看目录是否为中文(这点我遇到的没解决,但是网上有人遇到,也可能会产生这种问题,也算是一种解决办法)
在pycharm下的终端输入,
echo %path%
查看返回值中的第一个环境变量是否是当前项目下的虚拟环境的目录
既然看到这里,说明你的原因也是如此,还有一个更加可以证明此原因的方法:
在pycharm中依次打开 venv/Scripts/activate.bat, 以文本方式打开,映入眼帘的是不是就是你原来的项目地址
如果返回值中的第一个环境变量中路径出现乱码,那么大概率就是项目目录存在中文的问题,我原先的工程目录是中文的,我在导入虚拟依赖之后发现了中文的这个问题,就给工程名称修改了名字,换了地方,并且重新设置了依赖(没有删掉原先中文目录下已经导入完成的依赖),所以就算是改了名字,但是实际的路径里还是带了中文,所以pip仍为全局的情况
接下来很好处理,删掉venv,重新设置一个虚拟依赖。然后就解决了