背景:我有一个小型 Python 应用程序,它使在我们公司发布软件的开发人员的生活变得更加轻松。我使用 py2exe 为 Windows 构建了一个可执行文件。应用程序和二进制文件被检入 Subversion。分发是由人们从 SVN 中签出目录进行的。该程序有大约 6 个不同的 Python 库依赖项(例如 ElementTree、Mako)
情况:开发人员希望破解此工具的源代码,然后运行它而无需构建二进制文件。目前这意味着他们需要一个 python 2.6 解释器(这很好)并且还使用 easy_install 在本地安装了 6 个库。
问题
- 这不是一个公共的、经典的开源环境:我在一个公司网络中,该工具永远不会离开“围墙花园”,而且我们在访问外部互联网时遇到了严重不便的障碍(NTLM 身份验证代理和/或机器没有直接上网)。
- 我希望开始破解这个工具的障碍最小:没有人应该在正确的版本中寻找正确的依赖项,他们应该执行尽可能少的设置。最好的先决条件是安装 Python 并从 Subversion 中检出程序。
轶事:过程越独立,就越容易重复。我把我的机器换成了一台新机器,然后经历了一个令人不快的过程,不得不对依赖项进行逆向工程,重新安装 distutils,在线搜索库并让它们安装(参见上面的公司互联网限制)。