sunway1988 最近的时间轴更新
sunway1988

sunway1988

V2EX 第 71048 号会员,加入于 2014-08-16 10:29:02 +08:00
Python 出错问题定位经验请教!
问与答  •  sunway1988  •  2016-01-19 12:47:44 PM  •  最后回复来自 Mark3K
4
Python commands.getstatusoutput 一直不退出,求教!
Python  •  sunway1988  •  2018-10-01 11:04:58 AM  •  最后回复来自 lishuai860113
2
软件自动升级问题,求助各位!
  •  1   
    Python  •  sunway1988  •  2015-10-23 11:39:58 AM  •  最后回复来自 xylophone21
    13
    [Web 开发初学者] 请教 Web 开发后端学习路线
    问与答  •  sunway1988  •  2014-09-14 15:54:44 PM  •  最后回复来自 sunway1988
    10
    sunway1988 最近回复了
    2016-02-29 18:27:28 +08:00
    回复了 gpw1987 创建的主题 Python 小弟想学点 python,不知道有啥经典的书籍推荐
    《 Python 基础教程(第 2 版·修订版)》,买一本实体书,啥也不要想,跟着书,边看边敲例子程序,不要多想了,就这本书,认定了,去看,就入门了。
    2016-01-19 14:50:39 +08:00
    回复了 ericwang0717 创建的主题 推广 送 10 本《第一本 Docker 书》能刷出存在感吗?——实现网
    Docker 书好牛掰!实现网好牛掰!
    2015-10-23 10:04:15 +08:00
    回复了 sunway1988 创建的主题 Python 软件自动升级问题,求助各位!
    最后总结一下,主要实现方案如下:

    1. 首先,根据配置文件中所有的升级路径创建图,权值设为 1 ;
    2. 根据上面创建的图,寻找最短路径,即为升级的最优路径;
    3. 依次(反序,即先高版本的升级路径,假设 A 需要 1.0-1.3-1.5 ,则先处理 1.3-1.5 ,后处理 1.0-1.3 )判断上述产品升级的依赖情况,如有依赖,则将该产品升级信息入栈,假设记为{‘ A ’, ‘ 1.0 ’,‘ 1.3 ’},即 A 由 1.0 升级到 1.3 ,然后按照上述方式判断 A 的依赖的升级路径和是否存在依赖,后面的操作同 A ;
    4. 依次将升级情况入栈,最终栈中保存了升级的先后顺序,依次出栈并完成升级,此时依赖关系已经转化为了升级顺序,只需要专注升级自身即可。

    感谢各位的回答,谢谢!
    2015-10-22 18:29:52 +08:00
    回复了 sunway1988 创建的主题 Python 软件自动升级问题,求助各位!
    @xylophone21 这个在哪可以找到参考,搜索出来基本都是如何使用的
    2015-10-22 18:04:53 +08:00
    回复了 sunway1988 创建的主题 Python 软件自动升级问题,求助各位!
    @xylophone21 这是不是太复杂了一点,短时间能否实现?
    2015-10-22 18:03:37 +08:00
    回复了 sunway1988 创建的主题 Python 软件自动升级问题,求助各位!
    @domty 是啊,不能存在互相依赖,这个可以通过配置文件约束实现。而且一般现实情况也是不会存在这样互相依赖情形的。
    2015-10-22 17:47:57 +08:00
    回复了 sunway1988 创建的主题 Python 软件自动升级问题,求助各位!
    @domty 或者采用栈的方式来实现也可以,就是我上面讲的:
    建树是入栈,按照顺序入栈就行了
    按层从下到上的顺序遍历上面建的树 [出栈]
    2015-10-22 17:43:28 +08:00
    回复了 sunway1988 创建的主题 Python 软件自动升级问题,求助各位!
    @domty 我受到启发可以通过树的建立和后续遍历(假设以二叉树为例)来解决:

    首先根据升级路径建树:
    假设需要升级 A ,则 A 为根节点, A 依赖于 B , C , D ,则 BCD 依次为 A 的子节点,构成一棵树;
    同样升级 B , C , D 时,也有相应的依赖,假设是存在没有任何依赖的软件(主要通过配置文件约束实现),那么必然上述过程会结束,也就是存在叶子节点。

    然后先子节点后根节点 /或者按层从下到上的顺序遍历上面建的树:
    那么必然是被依赖的先升级,然后再升级有依赖的(但是此时依赖已经完成升级了,尽管大胆升级)。

    由此,就可以将存在依赖关系转化为升级顺序,这样在升级时,就可以只关注自己,而不用关心依赖了,因为依赖已经完成升级了。

    以上方案,如何?
    2015-10-22 17:03:24 +08:00
    回复了 sunway1988 创建的主题 Python 软件自动升级问题,求助各位!
    @domty 感谢回答:

    1. 通过将升级路径构造“图”数据结构可以找到最短路径,这样解决很好。
    2. 产品是相互独立的,每个产品都有特定的依赖,怎么实现统一依赖软件 d 呢?
    比如一套系统由 A , B , C , D 组成,如果 A 升级需要依赖 BCD 的版本,另一套系统由 E , F , G , H 组成, E 升级需要依赖 FGH 的版本。
    @xinlishuo 好的好的,我在南京,会持续关注你们的,不要忘了我哦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3699 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 10:24 · PVG 18:24 · LAX 02:24 · JFK 05:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.