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-win32\python.exe get-pip.py

至此 pip已經塞到了python-embedded里面 與此同時setuptools&wheel也安裝完成

意味着:我們可以升級&安裝.whl庫啦

Step 6

用cmd cd到python-embedded\Scripts文件夾下

記得帶上完整路徑!比如:

F:\python-3.7.3-embed-win32\Scripts\pip.exe install xxx

.whl文件同理啦

F:\python-3.7.3-embed-win32\Scripts\pip.exe install xxx.whl

確保第三步已經完成!

否則會報錯:

>>F:\python-3.7.3-embed-win32\Scripts\pip.exe install pypercilp
Traceback (most recent call last):
  File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\runpy.py", line 193, in _run_module_as_main
  File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\runpy.py", line 85, in _run_code
  File "F:\python-3.7.3-embed-win32\Scripts\pip.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里的安裝方法!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM