在Windows上部署Python包,编译依赖项,而无需安装Visual Studio?

时间:2014-06-27 01:00:36

标签: python windows pip pypi python-wheel

如果需要编译某些依赖项,那么将Python包部署到Windows Server的最佳方法是什么?安装Visual Studio是不可能的,每次需要更新时我都不愿意传递250MB的文件。 pip install -r requirements.txt是目标。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

easy_install - 允许从exe

安装

easy_install会从exe安装程序安装,如果可用的话。 pip不会从exe安装,因此对于C / C ++包,easy_install通常是安装方式。

使pip安装二进制文件

pip支持wheel格式的安装。

如果你在pypi或你使用的另一个索引服务器上有一个轮子,允许pip使用轮子(--use-wheels)。最新版本的pip默认使用滚轮格式,较旧版本需要设置--use-wheel切换。

构建车轮

您可以构建(编译)轮子,也可以将egg或exe安装程序转换为轮子。

为此,请使用wheel命令。

以轮式格式提供包裹

某些软件包(例如lxml)不在pypi服务器上提供轮子。如果要使用它们,则必须管理自己的索引。最简单的方法是使用专用目录,pip配置--find-links指向那里。

有关更多提示和详细信息,请参阅SO answer to caching packages

非常好的选择是devpi索引服务器,它易于设置,具有非常好的工作流程,并且可以很好地集成到您的点。

答案 1 :(得分:2)

使用Python最新的软件包分发格式wheels,使用一次编译,多次部署策略可能会有所帮助。它们是一种已编译的二进制格式。因此,需求只是一个开发/构建平台,与部署平台类似/运行相同的python(后者不再需要构建链)。

安装最新的pipsetuptoolswheel个软件包。然后你可以像pip install那样使用pip wheel命令,除了它会生成一个名为(默认情况下)wheelhouse的文件夹,其中包含另一个python /必需的已编译轮子点来安装你需要的东西。

然后,您可以将这些轮文件路径直接传递给pip install命令(例如,在部署机器上),或者使用带有--no-index --find-links=标志的普通包名称指向文件夹位置那些轮子是。此位置也可以是一个简单的http文件夹 - for example