热门标签:
Q:

为什么easy_install适用于某些Windows二进制文件?

背景资料

Windows默认情况下不包含编译器,安装编译器(也许配置Python以使用它)是一项足够复杂的任务,许多开发人员避免这样做。 为此,许多具有二进制依赖关系的软件包可作为包含二进制文件的预编译Windows可执行文件使用。 作为一个例子,有psycopg

可执行文件是安装程序。 执行时,它提供了一个图形界面,通过注册表定位已安装的Python版本,并在全局Python安装中安装Python库和包含的二进制依赖项。

然而,这并不总是可取的。 特别是在使用virtualenv时,开发人员不希望全局安装库。 他们希望库安装在虚拟环境中。 由于注册表中未表示此环境,因此图形安装程序无法找到它。 幸运的是,可以使用类似于以下内容的命令将库安装到虚拟环境:

C:\> C:\virtualenv\Scripts\activate.bat
(virtualenv) C:\> easy_install psycopg2-2.5.win32-py2.7-pg9.2.4-release.exe

请注意,无论easy_install来自setuptools还是distribute,这都有效。

实际问题

为什么这个命令起作用? 关于允许easy_install处理它的exe是什么?

我注意到exe似乎是某种zip文件。 7-Zip能够打开它进行浏览,easy_install可以处理的这些exe文件似乎具有通用的文件结构。 他们有一个名为PLATLIB的顶级目录,其中包含一个egg-info文件或文件夹和另一个(可能超过1个?)文件夹。 这些前任只是Python蛋,周围包裹着某种可执行文件? 我怎么能自己生产呢? (或者用不同的说法,是否有一些标准的方式来产生这样的exes?)

编辑

奖金问题:为什么pip与这些文件一起工作?

原网址

相似问题