python - 我应该更新 Python 模块吗?
问题描述
我正在开发一个个人程序,有时我认为更新程序中使用的 Python 模块是个好主意,但我不希望程序因为更新模块上的更新功能或类似的东西而停止工作。因此,自从我开始制作程序(1 年前)以来,我从未更新模块并将所有安装程序保存在程序的一个文件夹中,以便能够安装每个程序的正确版本(使用自动我在安装它们时做得更快)。我做得对还是这是个坏主意?如果模块的功能、类……更新,我只是不想在我的程序中重新编程很多东西。会发生这种情况还是它们将始终有效?顺便说一句,我是 Python 初学者。
解决方案
更新模块当然会导致项目中的代码损坏。该模块当然可能在另一个版本中重写了函数或类,删除了不推荐使用的代码等。
一种可能的方法是为项目创建一个虚拟环境,正如 roganjosh 已经提出的那样。这是一个有用的链接:http ://docs.python-guide.org/en/latest/dev/virtualenvs/ 。
在这个虚拟环境中,您可以在需求文件中记录当前版本的模块。经常这样做,我认为这也是一个很好的做法。这样做的另一个好处是,只需更改需求文件中的版本号,您就可以尝试新版本是否会使您的程序崩溃(当然,您当然也可以阅读模块的文档,“重大更改”或类似内容)。另一个缺点是项目只能在某些时候以高昂的代价进行更新(一次更改太多)。然后,您可以连续更新一个模块,看看是否需要在这里和那里更改项目代码。
如果您只想运行您的项目并且没有安全问题,那么修复版本可能就足够了。
推荐阅读
- linux - 即使我注册了一个环境变量,它也说无法加载so文件。我应该怎么办?
- reactjs - gh-pages 分支没有来自 master 的最新部署和提交
- c# - 定义整数范围的组合/排列的 C# 算法
- swift - 使用 oauthSwift 的无效随机数和时间戳 Garmin 访问令牌 API 响应
- c# - new Task() 中的 await Task.Delay(1000) 是否会阻塞某些线程?
- sql - 将字符串转换为 int 的更好方法
- .net - AWS 中的简单端点 (WebService)
- python - 如何在python中将“上周日”或“下周一”等时间字符串转换为日期时间格式
- javascript - 制表器:加载庞大的数据集需要很多时间
- javascript - Ember Octane Route 类是否支持使用 mixin?