嵌入式Python環境

本文首發於just4funhtml

緣起

這裏將討論的嵌入式Python環境並非硬件嵌入式開發的那個嵌入式,若是對Python和硬件感興趣,推薦micropython.python

一直想要一個嵌入式的python環境,最好對環境作的修改(諸如添加第三方包)能夠二次分發給用戶。git

在許多支持自定義功能的軟件中,咱們常常能夠看到嵌入式Python解釋器的身影,如GIMPBlender中、Sublime TextThonny...github

我對這些項目一直饒有興致,卻一直沒弄懂它們是怎麼作的。覺得用了什麼高深莫測的打包技術。bootstrap

昨天,@比老師提交了一個codelab-adapter jupyter插件, 這個插件容許使用codelab-adapter GUI啓停jupyter,而jupyter便安裝在一個嵌入式Python環境中(其實是一個ZIP包)。ide

比老師徹底實現了咱們以前的目標,我興奮不已,有了這個工做,codelab-adapter面前無疑打開了一扇嶄新的大門。咱們以後能夠作的東西,一會兒變得無限寬廣。若是咱們能更好地控制環境,入門用戶就能少受些苦。@比老師提到構建易用的環境,引用Alan Kay的一句話我很是喜歡:ui

codelab-adapter的痛點

codelab-adapter一直想要一個靈活可控的Python環境,最好支持用戶安裝第三方庫。因爲咱們使用Pyinstaller進行跨平臺打包(凍結了整個項目),因此打包後的環境沒法作到對pip的支持。spa

目前關於引入第三方Python庫的策略,咱們傾向使用ZeroMQ來橋接到系統環境。插件

儘管Thonny展現了很強大的打包技巧,但它幾乎是手動來作,咱們又不大樂意。3d

@比老師的工做讓咱們看到直接使用嵌入式Python環境要輕鬆不少。

嵌入式Python環境

Python官方社區提供了可用的嵌入式Python環境,此前我一直不曾留意。

目前只提供了Windows系統下的Python環境。(Mac和Linux自帶Python!)

Python官方社區提供的天然是CPython的環境,據我所知有些項目在使用PyPy提供的嵌入式環境.

使用筆記

記錄下個人一些使用筆記。

下載嵌入式Python環境

我下載了最新的3.7.3版本: python-3.7.3-embed-win32.zip,md5爲70df01e7b0c1b7042aabb5a3c1e2fbd5

我選擇了32位系統的環境,推薦你們也使用32位的版本,32位的版本能夠在64位系統上運行,反之則不行。

安裝pip

下載get-pip.py到解壓後的目錄中:

以後運行:.\python get-pip.py

修改python37._pth:

python37.zip
.

# Uncomment to run site.main() automatically
import site
複製代碼

接下來即可以使用pip安裝第三方庫了,咱們來試試安裝jupyterlab:.\python -m pip install jupyterlab -i https://mirrors.aliyun.com/pypi/simple

中途出現一個錯誤:pyrsistent安裝出錯. 手動安裝pyrsistent: www.lfd.uci.edu/~gohlke/pyt…

.\python -m pip install pyrsistent‑0.15.1‑cp37‑cp37m‑win32.whl

啓用jupyterlab:.\python -m jupyterlab

以後分發整個目錄便可!

更專業地分發

直接把ZIP包交給用戶看起來彷佛不是很專業,可使用pynsist將其打包爲可安裝文件。

相關文章
相關標籤/搜索