繁体   English   中英

Python 可嵌入 zip

[英]Python embeddable zip

在 3.5.0 版本中, Python.org引入了一个名为embeddable zip file 的发行版

不幸的是,压缩文件没有帮助文件(甚至没有自述文件)。 Python.org 上的下载页面只是在下载中列出了它。

显然这是一个可移植的 Python 发行版。 无论如何,它在结构和大小上与使用安装程序的标准发行版完全不同。

我意识到可以使用get-pip.py安装 pip 并且,感谢 pip,添加许多其他应用程序包变得轻而易举,尽管我仍然无法添加 Tkinter(根据您的 shell 调整斜线):

curl https://www.python.org/ftp/python/3.x.x/python-3.x.x-embed-amd64.zip > epython.zip
unzip -o epython.zip -d env1
curl -L https://bootstrap.pypa.io/get-pip.py>env1/get-pip.py
env1/python env1/get-pip.py

添加您需要的内容,例如django

env1/python -m pip install django  

鉴于大小(3.5.1-x64 为 6.5 Mega),我认为它可以方便地作为创建隔离环境的一种方式。

事实上,一般的 Python 文档

嵌入式发行版(几乎)与用户系统完全隔离,包括环境变量、系统注册表设置和已安装的包

鉴于此,在 Windows 中现在有两个独立的 Python 环境,第二个是标准的Virtualenv Virtualenv中的相同过程如下:

virtualenv env2

对于 Django,它将是:

env2/Scripts/python -m pip install django  

比较env1env2的内容,它们似乎具有相同的文件。 唯一显着的区别是Tkinter1 ,这对于桌面应用程序来说意义不大。

Python Virtualenv 和 Python embeddable 之间的区别是什么?

具体来说,使用可嵌入 zip ( env1 ) 和 Virtualenv ( env2 ) 创建的独立 Web 应用程序之间的区别是什么?

文档中可以看出,它主要用于在 ms-windows 上运行基于 Python 的应用程序以及将 Python 嵌入到应用程序中。 如您所见,他们遗漏了tkinter 也许要缩小尺寸?

我认为将它与 virtualenv 进行比较并没有多大意义。 它们有完全不同的用例。

在 ms-windows 世界中,应用程序通常作为整体独立实体分布。 相比之下,基本上每个 UNIX 风格都有一个有效的包管理系统,这使得拥有依赖于其他包的包变得更容易。 因此,如果您在 UNIX 中安装基于 Python 的应用程序,包管理系统基本上会为您安装 Python(如果尚未安装)。 在 ms-windows 上这不起作用。 ms-windows 的几个 Python 发行版如雨后春笋般涌现,因为(出于技术原因)与 UNIX 相比,在 ms-windows 上编译和设置内容是痛苦的[1] [2] [3] 因此,对于想要分发基于 Python 的程序或想要将 Python 嵌入到他们的应用程序中的人来说,拥有一个可嵌入的 Python 是有意义的。

一般来说,尽管我建议 ms-windows 用户安装 Canopy 或 Anaconda,因为它们带有您可能需要的大多数外部模块。

编辑到 2020 年, python.org发行版已经取得了长足的python.org 你不再需要一个特殊的编译器,越来越多的模块在 PyPI 上为 ms-windows 分发预编译的二进制文件。 所以我对 ms-windows 用户的建议已经改变:使用 Python 的python.org 版本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM