Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python可嵌入拉链_Python_Python 3.x_Pip - Fatal编程技术网

Python可嵌入拉链

Python可嵌入拉链,python,python-3.x,pip,Python,Python 3.x,Pip,在3.5.0版本中,引入了一个称为可嵌入zip文件的发行版 不幸的是,压缩文件没有帮助文件(甚至没有自述文件)。在Python.org上的下载列表中只列出了它 显然,这是一个可移植的Python发行版。它在结构和大小上与使用安装程序的标准发行版有很大不同 我意识到使用pip安装pip是可能的,多亏了pip,添加许多其他应用程序包是轻而易举的事,尽管我仍然无法添加Tkinter(根据shell调整斜线): 添加您需要的内容,例如: 考虑到尺寸(3.5.1-x64为6.5兆),我认为它可以方便地作为

在3.5.0版本中,引入了一个称为可嵌入zip文件的发行版

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

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

我意识到使用pip安装pip是可能的,多亏了pip,添加许多其他应用程序包是轻而易举的事,尽管我仍然无法添加Tkinter(根据shell调整斜线):

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

考虑到尺寸(3.5.1-x64为6.5兆),我认为它可以方便地作为一种创建隔离环境的手段

事实上,一般的Python说

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

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

virtualenv env2
对于django来说,这将是:

env2/Scripts/python -m pip install django  
比较
env1
env2
的内容,它们似乎具有相同的文件。唯一显著的区别是,这对于桌面应用程序来说并不重要

Python Virtualenv和Python Embeddeble之间的区别是什么

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

正如您从中看到的,它主要用于在ms windows上运行基于Python的应用程序,以及在应用程序中嵌入Python。如您所见,他们遗漏了
tkinter
。也许可以把尺码小一点

我认为,把它比作虚拟电视没有多大意义。它们有完全不同的用例

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

但总体而言,我建议微软windows用户安装Canopy或Anaconda,因为它们附带了您可能需要的大多数外部模块


编辑截至2020年,
python.org
发行版已经走过了漫长的道路;您不再需要特殊的编译器,越来越多的模块在PyPI上为ms windows分发预编译的二进制文件。因此,我对ms windows用户的建议已更改:使用Python

谢谢,这证实了“此发行版(几乎)与用户系统完全隔离,包括环境变量、系统注册表设置和安装的软件包。”我的第二点很有意义,那么,@antonio这个答案非常准确(尽管我不知道冠层或巨蟒的代言)。可能更清楚的是,virtualenv用于隔离已安装的软件包,而嵌入式Python用于隔离整个Python运行时。当您可以共享运行时而不共享已安装的软件包(大多数web应用都属于这一类)时,可以使用virtualenv;当您不想共享全局安装时,可以使用嵌入式Python(这对许多桌面应用程序都有意义)。从开发的角度来看,使用可嵌入版本可能会有点麻烦。@jpmc26:我发现它们对每个环境都使用不同的运行时。或者你是在说virtualenv选项?+1个优点。最后一件事。Virtualenv通常与virtualenvwrapper一起使用,这需要一些类似bash的环境。不幸的是,随软件包系统(ArchLinuxPacman)附带的安装了不兼容的Python,因此Virtualenv/VirtualEnvRapper无法工作。因此,脚本下载/提取可嵌入Python zip的副本非常方便。在可嵌入Python中安装django之后,是否可以在服务器站点上要求相同的库并像使用Virtualenv一样传输项目?还是又是一种痛苦?@jpmc26缺少特金特也让我困惑。考虑到嵌入式Python的双重用途,我猜它主要是针对那些希望在应用程序中嵌入Python的人。如果你知道怎么做,请回答。
virtualenv env2
env2/Scripts/python -m pip install django