上篇讲到 pyinstaller打包exe太大的问题
CodingDog:pyinstaller打包的exe太大?你需要嵌入式python玄学 前提篇
那既然pyinstaller这么麻(nan)烦(yong) 那为什么不找一种方法代替它呢?
经过多方面打听,一位道上的盆友告诉了我一个惊天大秘密
python有embedded版本
当我看完了官方的文档以后。。。我的表情是这样的
惊喜&惊喜&惊喜&惊喜 像发现了新大陆一样
python37的embedded版本
因为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玄学 惊喜篇
可是却没有办法用pip安装必要的库
去看一下官方文档怎么说的
version of python do not supports pip
嗯。。。不支持 不光如此,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
别去给我全选--复制哈 复制我会打人的(全选一年也全选不完的说)
正确打开方式:
保存到你的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安装
原文:
但是···等等···!像官方文档说的:Tk不提供 并且牵扯到的tcl也不提供的情况下
我们怎么把tkinter安装在embedded版本里呢????
下期我们讲Tk&tcl在python-embedded里的安装方法!