首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从操作角度看Python包

从操作角度看Python包
EN

Software Engineering用户
提问于 2015-05-13 06:12:50
回答 2查看 83关注 0票数 1

作为一名开发人员,我习惯于不断更新Python工具。特别是安装和捆绑所需的软件包。在我个人的经验中,使用pip、virtualenv和setuptools的最新版本是最可靠的选择。

最近有人告诉我,从操作的角度来看,我不应该触及生产机器上预先安装的pip版本。可以这样说:虚拟环境中典型的pip install -U pip是一个安全风险。

我认为这是有道理的,但我不知道这是否是运行使用Python开发的服务的最佳实践。例如,在Debian 7中,Pip是相当古老的。

所以我的问题

  • 这里安全运行Python服务的最佳实践是什么?
  • 有没有办法将分裂的世界(OS包树和Python包树)更紧密地联系在一起?
EN

回答 2

Software Engineering用户

发布于 2015-05-13 06:50:31

通常对随给定发行版附带的Linux包进行大量测试,以确保它们能够很好地处理特定的发行版。您的公司可能会执行额外的步骤来测试那些特定于公司的场景包。

如果你在安装更新的版本,你就只能靠自己了。它可能工作得很好,而且通常是这样的,因为它是由软件包本身的开发人员测试的。但是它也可能在给定的分布中引起问题。

是否应该安装较新的版本取决于:

  • 服务器应该有多稳定。如果您想避免生产中的任何问题,请不要盲目地升级到新版本,希望一切都能按预期工作。
  • 拥有新版本是多么的关键。有些版本包含了应用程序绝对需要的新特性,因此冒着更新包的风险是可以接受的。有些版本解决了同样重要的bug,这些bug可以保存在您的平台上。

通常,生产服务器的更新过程(是在Linux还是Windows上)并不像apt-get install ...或单击Windows中的按钮那样简单。相反:

  • 应在暂存过程中测试更新,以确保没有明显的回归。
  • 生产服务器S不可能一次又一次地更新,而是一个接一个地更新,以便在发生不好的事情时能够故障转移并退一步。
  • 如果稍后发现了回归,您应该确保可以恢复到以前的状态。
票数 3
EN

Software Engineering用户

发布于 2015-05-13 07:51:17

使用虚拟环境,您可以指定要安装的每个包的版本(为什么这是件好事)。这允许您将特定于您的代码库需要的任何版本。

主要的缺点是更新可能更慢,部署到新机器需要的时间更长。前者可能不会太糟糕,因为您希望测试所有较新版本的依赖关系仍然适用于您的代码,对吗?后者已经被大量的工具解决了--例如木偶-Python

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

https://softwareengineering.stackexchange.com/questions/283703

复制
相关文章

相似问题

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