首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何部署以库为源的Python应用程序,而不需要进一步依赖?

如何部署以库为源的Python应用程序,而不需要进一步依赖?
EN

Stack Overflow用户
提问于 2009-02-09 09:20:17
回答 4查看 8K关注 0票数 13

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

情况:开发人员希望黑入该工具的源代码,然后运行它,而不必构建二进制文件。目前,这意味着他们需要一个python2.6解释器(这很好),还需要使用easy_install在本地安装6个库。

问题

  • 这不是一个公共的、经典的开源环境:我在一个企业网络中,这个工具永远不会离开“围墙花园”,而且我们在进入外部互联网时遇到了严重的障碍(NTLM认证代理和/或机器,没有直接的互联网访问)。
  • 我希望开始黑这个工具的障碍是最小的:没有人应该在正确的版本中寻找正确的依赖关系,他们应该执行尽可能少的设置。最优的先决条件是安装Python并从Subversion中检出程序。

轶事:这个过程越自成一体,就越容易重复。我让我的机器换了一台新的,并经历了一个令人不快的过程,不得不反向设计依赖关系,重新安装distutils,在线搜索库并让它们安装(参见上面的企业互联网限制)。

EN

回答 4

Stack Overflow用户

发布于 2009-02-09 09:28:04

只需使用维塔列夫 --它是一个创建孤立的Python环境的工具。您可以创建一个设置脚本,如果您愿意的话,可以分发所有的脚本。

票数 9
EN

Stack Overflow用户

发布于 2009-02-09 12:01:16

“我不喜欢这样一个事实,即开发人员(或我在一台干净的新机器上启动)必须跳过必须在本地安装库才能启动的distutils循环。”

为什么?

这有什么问题吗?

你这么做是为了创建这个项目。你的项目很受欢迎,其他人也想这么做。

我不觉得有什么问题。请用你需要解决的具体问题来更新你的问题。不喜欢开源的分布方式不是问题--这是开源的工作方式。

编辑.“围墙花园”并不重要。

选择1。你可以为他们构建一个运行6次easy_install的“安装程序”。

选择2.您可以保存easy_install所使用的所有安装程序工具包。然后,您可以为所有六个用户提供一个解压缩和一个python setup.py install的脚本。

选择3.您可以提供压缩版本的site-packages。安装Python后,他们会将您的网站包目录解压缩到`C:\Python2.5\lib\site-packages.中。

选择4.您可以为Python环境构建自己的MSI安装程序工具包。

选择5.您可以承载您自己的pypi类服务器,并提供一个easy_install来首先检查您的服务器。

票数 8
EN

Stack Overflow用户

发布于 2009-02-09 12:24:30

我同意诺克洛和S.Lott的回答。(+1改为两者)

我可以补充一点吗,您想要做的实际上是一个糟糕的想法,

如果你真的想让人们破解你的代码,他们将需要对所涉及的库、他们的工作方式、他们的身份、他们的来源、每个人的文档等有一定的了解。当然,给他们提供一个引导脚本,但除此之外,你将是莫莉--溺爱到他们一无所知的程度。

还有一些具体的问题,比如“如果一个用户想安装不同版本或库的实现怎么办?”,这里一个突出的例子是ElementTree,因为它有许多实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/527510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档