python - 如何在没有进一步依赖的情况下部署以库为源的 Python 应用程序?

标签 python deployment layout bootstrapping

背景:我有一个小型 Python 应用程序,它可以让开发人员在我们公司发布软件的工作更轻松一些。我使用 py2exe 为 Windows 构建了一个可执行文件。应用程序和二进制文件都被 checkin Subversion。人们只需从 SVN checkout 目录即可进行分发。该程序有大约 6 个不同的 Python 库依赖项(例如 ElementTree、Mako)

情况:开发人员希望破解此工具的源代码,然后无需构建二进制文件即可运行它。目前这意味着他们需要一个 python 2.6 解释器(这很好)并且还使用 easy_install 在本地安装了 6 个库。

问题

  • 这不是一个公共(public)的、经典的开源环境:我在公司网络中,该工具永远不会离开“围墙花园”,而且我们在访问外部互联网(NTLM 身份验证代理和/或无法直接访问互联网的机器)。
  • 我希望开始破解此工具的障碍最小:没有人应该在正确的版本中寻找正确的依赖项,他们应该执行尽可能少的设置。最理想的先决条件是安装 Python 并从 Subversion check out 程序。

轶事:过程越独立,就越容易重复。我把我的机器换​​成了一台新机器,经历了一个令人不快的过程,即必须对依赖项进行逆向工程、重新安装 distutils、在线搜索库并安装它们(参见上面的公司互联网限制)。

最佳答案

只需使用 virtualenv - 它是创建隔离 Python 环境的工具。如果需要,您可以创建一个设置脚本并分发整个脚本。

关于python - 如何在没有进一步依赖的情况下部署以库为源的 Python 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/527510/

相关文章:

asp.net - 有没有办法让VS2010发布向导在发布站点时复制App_offline.htm?

git - 对于 Web 应用程序,您理想的 git 分支架构是什么?

WPF : Is it possible to adapt a path size to the layout size, 但还在拉伸(stretch)呢?

android - 如何制作带圆角的布局..?

python - __length_hint__ 什么时候会不准确?

python - 处理抽象类中子类类型的循环导入

deployment - Teamcity SetParameter 似乎不起作用

android - 如何在不调用 bringToFront() 的情况下将 View 置于最前面?

python - 无法在 'app' Gunicorn 中找到应用程序对象 'app'

python - mustache 不在 Pyramid 中渲染