您尚未登录。

#1 2013-09-26 23:19:38

haroldwu
会员
所在地: 台中
注册时间: 2013-07-27
帖子: 45
个人网站

更新、列出安裝的python包的小腳本

主要用於升級virtualenv內安裝的所有的包
不知有什麼更好的方法?

#!/usr/bin/env python
# Filename: upgrade.py

import pip
from subprocess import call
import sys, getopt

def usage():
    print('-l, --list 列出已安裝包; -u, --upgrade 嘗試升級已安裝包')

def getPackageList():
    return [dist.project_name for dist in pip.get_installed_distributions()]

def main(argv):
    try:
        opts, args = getopt.getopt(argv, "hul", ["help", "upgrade", "list"])
    except getopt.GetoptError:
        usage()
        sys.exit(2)

    for opt, arg in opts:
        if opt in ("-h", "--help"):
            usage()
            sys.exit()
        elif opt in ("-u", "--upgrade"):
            for project_name in getPackageList():
                print('Upgrading ', project_name)
                call("pip install --upgrade " + project_name, shell=True)
        elif opt in ("-l", "--list"):
            for project_name in getPackageList():
                print(project_name)

if __name__ == "__main__":
    main(sys.argv[1:])

最近编辑记录 haroldwu (2013-09-26 23:24:15)


呆丸人
常出沒於 Google+,欢迎互圈~
博客 边陲小岛

离线

#2 2013-09-26 23:23:22

糊涂
本尊
注册时间: 2012-10-30
帖子: 203

Re: 更新、列出安裝的python包的小腳本

厄!不好意思,文不对题的回复!删了!

最近编辑记录 糊涂 (2013-09-27 19:11:47)


想装X,别装X

离线

#3 2013-09-26 23:28:06

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,917
个人网站

Re: 更新、列出安裝的python包的小腳本

不用 virtualenv :-)

离线

#4 2013-09-27 01:21:07

haroldwu
会员
所在地: 台中
注册时间: 2013-07-27
帖子: 45
个人网站

Re: 更新、列出安裝的python包的小腳本

這個腳本可以完美的在virtualenv環境下運作噢~

寫這個的原因是:
有時候會裝一些東西,pacman沒包而aur的包過期了,又不想污染系統
得用virtualenv
其實它強大是在開發能在多種版本python運行的程序,可以指定解釋器版本


呆丸人
常出沒於 Google+,欢迎互圈~
博客 边陲小岛

离线

#5 2013-09-27 10:31:22

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,917
个人网站

Re: 更新、列出安裝的python包的小腳本

haroldwu 说:

這個腳本可以完美的在virtualenv環境下運作噢~

寫這個的原因是:
有時候會裝一些東西,pacman沒包而aur的包過期了,又不想污染系統
得用virtualenv
其實它強大是在開發能在多種版本python運行的程序,可以指定解釋器版本

过期了就去 flag out-of-date 啦,自己改改 PKGBUILD。一两个星期之后对方还不更新的话你就接手啦。

离线

页脚