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还是分发,都可以使用。
为什么这个命令有效?什么是允许easy_install处理它的exe文件?
我注意到exe似乎是某种zip文件。 7-Zip能够打开它进行浏览,easy_install可以处理的这些exe文件似乎有一个共同的文件结构。他们有一个名为PLATLIB的顶级目录,其中包含egg-info文件或文件夹以及另一个(可能超过1?)文件夹。这些exes只是Python蛋,它们周围有某种可执行文件吗?我怎么能自己生产一个? (或者用不同的方式来说,是否有一些标准的方法可以产生这样的exes?)
额外问题:为什么不 pip使用这些文件?