Python 从 git 进行 self 更新

标签 python git pygame auto-update self-updating

我正在用 Python 开发一个游戏,我想实现一个系统,用户可以选择是否要从 git 接收自动更新,如果愿意,是否要从“稳定版”更新"分支或“beta”分支。

有没有一种简单的方法可以做到这一点,例如允许 python 访问 git 的库?当我有一个已经保存了我需要的所有代码的 git 存储库时,我想避免必须设置一个可以通过 ftp 发送文件的 Web 主机。我更喜欢一种不需要用户在游戏之外安装 git 的方式,但如果我必须要求 git 允许更新,我也可以接受。

如果有帮助,我们可以假设游戏的更新程序是独立的,永远不需要自行更新。

最佳答案

pip 可以直接从 git 安装(如果需要,您可以选择分支、标签)。 pip 与最新的 Python 版本(2.7.9+、3.4+)捆绑在一起。

  • 更新您的程序,例如:

    subprocess.check_call([sys.executable, '-m', 'pip', 'install', '-U',
            'git+...uri...#egg=your_package'])
    
  • 重新启动:

    os.execv(sys.executable, sys.argv + ['--updated'])
    

请注意:这非常简单。查看具有类似要求的其他程序如何执行此操作。

关于Python 从 git 进行 self 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34050908/

相关文章:

python - Python 中的电阻率非线性拟合

git - 'git svn rebase' 和 'git rebase trunk' 之间的区别

python - Pygame:国际象棋中的网格/棋盘对齐

python - OpenCV cv2 图像到 PyGame 图像?

python - 广播从矩阵创建的子张量(Theano)

javascript - PostgreSQL 数据库 - 如何按顺序查询表(无限滚动)

Python 多维列表 - IndexError : list index out of range

git - 为什么 .git/hooks 有时会在克隆的存储库中丢失?

node.js - git commit 添加 2 个新行

python - Pygame - 在 Sprite 中加载图像