如何冻结/列出所有virtualenvs?

时间:2013-04-26 15:26:01

标签: virtualenv pip virtualenvwrapper

我在一台服务器上有多个virtualenvs,我想对所有virtualenvs执行2次操作。

  1. pip freeze
  2. 点子列表 - 已过时
  3. 是否有自动解决方案/命令允许我对所有virtualenv执行这些pip操作,而无需依次运行/激活/停用每个virtualenv并运行pip命令?

    我认为作为virtualenvwrapper的一部分,有lsvirtualenv命令列出所有virtualenvs。但我没有看到在每个virtualenv中运行pip命令的解决方案。

    由于

1 个答案:

答案 0 :(得分:0)

这是一个早就应该回答的问题了。如果您直接在virtualenv的bin文件夹中运行pip脚本,那么您不需要打扰激活/停用舞蹈。牢记这一点,我提出了以下的手动bash别名,以便在我测试时看起来有用的快速而肮脏的解决方案:

$ alias freeze-all='find . -type f -perm /ugo+x -regex \'.*/bin/pip$\' -exec echo {} freeze: \; -exec pip freeze \;'
$ alias outdated-all='find . -type f -perm /ugo+x -regex \'.*/bin/pip$\' -exec ehco {} list --outdated \; -exec {} list --outdated\;'

然后只需将别名作为$ freeze-all$ outdated-all运行。您可以将这些行(不带$提示)添加到.bashrc文件中,如果您喜欢它们和/或根据自己的喜好进行黑客攻击。它可能缺乏润色,但它会完成工作。