Pyinstaller打包生成exe文件过大,四种常用处理方法集锦---嵌入式Python-02

上篇讲到 pyinstaller打包exe太大的问题

CodingDog:pyinstaller打包的exe太大?你需要嵌入式python玄学 前提篇​zhuanlan.zhihu.com图标

那既然pyinstaller这么麻(nan)烦(yong) 那为什么不找一种方法代替它呢?

经过多方面打听,一位道上的盆友告诉了我一个惊天大秘密

python有embedded版本

当我看完了官方的文档以后。。。我的表情是这样的

惊喜&惊喜&惊喜&惊喜 像发现了新大陆一样

python37的embedded版本

Python Release Python 3.7.3​www.python.org图标

因为64位exe可能不支持32位系统 反其道而行之直接选32位就完事了

11.5M 很良心有没有!!

然后解压这个.zip压缩包就可以当作一个迷你python正常使用了!

再也不用费尽心机让“聪明”的用户们安装令人头大的python并且加入path了

让我们试一下!

嗯···不错不错 味道好极了(真香)

看来问题不大!那么我们该如何调用这个特殊版本的迷你python呢?

请注意:如果您的电脑上存在完整的python环境并且已经加入了PATH当中 直接用cmd调用python像这样:

调用的仍然是存在于PATH当中的完整的python环境

正确打开方式:把embedded-python.exe的完整路径加上 像这样:

那么问题来了 如何让我们写的.py运行在指定的环境之上呢?

它笨我们不笨啊 这时候就有必要祭出伟大的命令行工具了 比如vbs啊bat啊

windows的福音啊

开整!

比如我写了一个test.py 想要用embedded python运行:

完美!

embedded-python:知道我的厉害了吧

强制但是:[思考··] 如果这个embedded-python只提供基础的库 那我要用到matplotlib Pillow怎么办? pip?

事实证明 没有pip!!!


下面我们讲如何给embedded-python安装pip

以及使用pip安装必要库~

-EOF- 高产似那啥??不存在的

上篇我们讲到embedded版本的基础操作

CodingDog:pyinstaller打包的exe太大?你需要嵌入式python玄学 惊喜篇​zhuanlan.zhihu.com图标

可是却没有办法用pip安装必要的库

去看一下官方文档怎么说的

version of python do not supports pip​docs.python.org图标

嗯。。。不支持 不光如此,Tcl/tk也是不给你滴。。。

可是谁甘心只用标准库敲代码?卒都不知道怎么卒的···

关键是他,,,他掉头发呀

程序猿(媛)们再一次发挥聪明才智,把pip塞进去了

Step 1

下载python-embedded(废话嘛这不是)

Step 2

解压缩 =w=

Step 3

找到自己python-embedded文件夹下的python37.pth(如果你下载的是27版本那当然就是python27._pth啦)

用记事本打开-w-(我管你用什么 你能打开就行了)

把# import site前面的注释符号“#”删除——保存

python37.zip
.

# Uncomment to run site.main() automatically
import site

Step 4

去官网下载get-pip.py

Installation - pip 19.2.1 documentation​pip.pypa.io

别去给我全选--复制哈 复制我会打人的(全选一年也全选不完的说)

正确打开方式:

保存到你的python-embedded文件夹下

Step 5

用cmd cd到python-embedded文件夹下

记得带上python-embedded的完整路径 比如我解压在F:python-3.7.3-embed-win32

就需要这么写:

F:python-3.7.3-embed-win32python.exe get-pip.py

至此 pip已经塞到了python-embedded里面 与此同时setuptools&wheel也安装完成

意味着:我们可以升级&安装.whl库啦

Step 6

用cmd cd到python-embeddedScripts文件夹下

记得带上完整路径!比如:

F:python-3.7.3-embed-win32Scriptspip.exe install xxx

.whl文件同理啦

F:python-3.7.3-embed-win32Scriptspip.exe install xxx.whl

确保第三步已经完成!

否则会报错:

>>F:python-3.7.3-embed-win32Scriptspip.exe install pypercilp
Traceback (most recent call last):
  File "D:objWindows-Release37win32_Releasemsi_pythonzip_win32
unpy.py", line 193, in _run_module_as_main
  File "D:objWindows-Release37win32_Releasemsi_pythonzip_win32
unpy.py", line 85, in _run_code
  File "F:python-3.7.3-embed-win32Scriptspip.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip'

这样我们就完成了pip的安装&简单模块使用pip安装

原文:

pip with embedded python​stackoverflow.com图标


但是···等等···!像官方文档说的:Tk不提供 并且牵扯到的tcl也不提供的情况下

我们怎么把tkinter安装在embedded版本里呢????

下期我们讲Tk&tcl在python-embedded里的安装方法!

原文地址:https://www.cnblogs.com/vilenx/p/12409003.html