前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python的兼容性很无助

Python的兼容性很无助

作者头像
jeanron100
发布2018-08-08 11:21:11
5610
发布2018-08-08 11:21:11
举报

今天下午要发布一个版本运维平台的版本,对于线上版本的使用思路是这样的。

  1. 线上版本的数据库变更都是通过SQL语句,即线上环境的数据是最准确,最完整的,同时线上环境不做开发环境的配置。对于数据变更这块,这也是我喜欢Django的唯一理由了。我可以很轻松的通过migrations里面的配置使用sqlmigrate生成对应的SQL语句来,如果有10个变更,那么我可以导出对应的SQL语句,依次部署变更即可。
  2. 测试环境的代码是最新的,代码层面我们内部使用了GitLab来做版本控制,在这个基础上开了分支来适配不同的需求。线上环境不做开发环境的调试和配置,只做发布。
  3. 对于测试环境和线上环境使用两套配置文件,两个文件的配置需要做到基本的同步。线上发布的时候只需要调整配置文件即可。不需要再修改里面的配置了。 所以一般发布的时候,如果没有数据库变更,那么我只需要把代码同步过去即可,如果有数据变更,则需要并行做这两件事情。 今天发布的时候,整个过程看起来还顺利,但是启动的时候却抛出了错误,提示是ansible的模块支持有问题。

直觉的思路就是使用pip来检查,但是发现pip不可用了。最开始以为是pip导致的。修复方法如下:

代码语言:javascript
复制
from pip import mainif __name__ == '__main__':sys.exit(main())

修改该文件内容为:

代码语言:javascript
复制
from pip import __main__if __name__ == '__main__':

这个算是第一个兼容问题吧。

紧接着调试,发现没有效果,这是一个要发布的环境出现这样的问题,看起来问题还是比较严重了。问题的难点就在于,目前还无法定位问题的原因。

所以找同事做了确认,近期没有做过包的变更,我唯一记得的就是前段时间做了pip的升级。

所以简单确认后,对pip进行降级。

python -m pip install pip==9.0.1

但是问题还是没有解决,又找另外的同事继续分析,最后发现原来是一个ansible的版本冲突导致,这台服务器还有另外一个业务的同学在使用,他使用的是2.4版本,而我们这个是2.2版本。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档