【问题标题】:How would one pip freeze/list all virtualenvs?一个 pip 如何冻结/列出所有 virtualenvs?
【发布时间】:2013-04-26 15:26:01
【问题描述】:
我在单个服务器上有多个 virtualenv,我想对所有 virtualenv 执行 2 次操作。
- 点冻结
- 点子列表 --outdated
是否有自动化的解决方案/命令允许我在所有 virtualenvs 上执行这些 pip 操作,而不必依次运行/激活/停用每个 virtualenv 并运行 pip 命令?
我看到作为 virtualenvwrapper 的一部分,有 lsvirtualenv 命令列出所有 virtualenvs。但我没有看到在每个 virtualenv 中运行 pip 命令的解决方案。
谢谢
【问题讨论】:
标签:
virtualenv
pip
virtualenvwrapper
【解决方案1】:
这早就应该得到答案了。如果您直接在 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 文件中和/或修改它以适应您的口味。它可能缺乏修饰,但它会完成工作。