背景:我有一个小型的应用程序,它使开发人员在我们公司发布软件的工作变得更容易一些。我使用py2exe为Windows构建了一个可执行文件。应用程序和二进制文件都被签入Subversion。分发是由只从SVN签出目录的人进行的。该程序大约有6个不同的Python库依赖项(例如ElementTree、Mako)。
情况:开发人员希望黑入该工具的源代码,然后运行它,而不必构建二进制文件。目前,这意味着他们需要一个python2.6解释器(这很好),还需要使用easy_install在本地安装6个库。
问题
轶事:这个过程越自成一体,就越容易重复。我让我的机器换了一台新的,并经历了一个令人不快的过程,不得不反向设计依赖关系,重新安装distutils,在线搜索库并让它们安装(参见上面的企业互联网限制)。
发布于 2009-02-09 09:28:04
只需使用维塔列夫 --它是一个创建孤立的Python环境的工具。您可以创建一个设置脚本,如果您愿意的话,可以分发所有的脚本。
发布于 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来首先检查您的服务器。
发布于 2009-02-09 12:24:30
我同意诺克洛和S.Lott的回答。(+1改为两者)
我可以补充一点吗,您想要做的实际上是一个糟糕的想法,。
如果你真的想让人们破解你的代码,他们将需要对所涉及的库、他们的工作方式、他们的身份、他们的来源、每个人的文档等有一定的了解。当然,给他们提供一个引导脚本,但除此之外,你将是莫莉--溺爱到他们一无所知的程度。
还有一些具体的问题,比如“如果一个用户想安装不同版本或库的实现怎么办?”,这里一个突出的例子是ElementTree,因为它有许多实现。
https://stackoverflow.com/questions/527510
复制相似问题