1

首先让我解释一下目前的情况:

我们确实有几个python依赖于自定义(不是公开发布的)以及一般已知包的应用程序。这些依赖都安装在system python安装上。应用程序的分发是通过git源代码完成的。所有这些计算机都隐藏在公司网络中,无法访问互联网。

这种方法有点让人头疼,因为它有以下缺点:

  • Libs 必须在每台计算机上手动安装:(

如何更好地部署应用程序?我最近看到virtualenv这似乎是解决方案,但我还没有看到。

virtualenv为我的应用程序创建一个干净python instance。我应该如何部署它以便软件的用户可以轻松启动它?

应用程序内部是否应该有一个启动脚本来创建virtualenv启动期间?

下一个问题是计算机无法访问互联网。我知道我可以为包指定一个自定义位置(网络共享?),但这是正确的方法吗?还是我也应该部署压缩包?

另一种方法是运送整个 python 实例吗?所以用户不必启动virutalenv? 在这个 python 实例中,所有必要的包都将被预先安装。

由于我们的应用程序正在快速增长,我们有一个快速的发布周期(2 周)。通过部署git非常容易。用户可以stable通过更新脚本从分支中获取最新版本——这仍然可行还是有更好的方法?

我知道有很多问题。希望有人可以回答我或给我一些建议。

4

1 回答 1

2

您可以使用pip直接从以下位置安装git

pip install -e git+http://192.168.1.1/git/packagename#egg=packagename

无论您是否使用virtualenv(您应该使用),这都适用。

您还可以创建一个requirements.txt包含您要安装的所有内容的文件:

-e git+http://192.168.1.1/git/packagename#egg=packagename
-e git+http://192.168.1.1/git/packagename2#egg=packagename2

然后你就这样做:

pip install -r requirements.txt

因此部署过程将包括获取requirements.txt文件然后执行上述命令。添加virtualenv会使它更清洁,而不是更容易;没有virtualenv你会污染系统范围的 Python 安装。virtualenv旨在为在自己独特的虚拟 Python 环境中运行许多应用程序提供解决方案;它与如何在该环境中实际安装东西没有太大关系。

于 2013-07-22T13:05:42.033 回答