zoukankan      html  css  js  c++  java
  • 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里的安装方法!

  • 相关阅读:
    数据结构-包含min函数的栈
    数据结构-顺时针打印矩阵
    数据结构-二叉树的镜像
    数据结构-树的子结构
    数据结构-合并两个排序的链表
    数据结构-反转链表
    数据结构-链表中倒数第K个节点
    数据结构-调整数组顺序使奇数位于偶数前面
    数据结构-在O(1)时间删除链表节点
    数据结构-打印1到最大的n位数
  • 原文地址:https://www.cnblogs.com/vilenx/p/12409003.html
Copyright © 2011-2022 走看看