嵌入式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将其打包为可安装文件。

相关文章
相关标签/搜索