1

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

  1. 点冻结
  2. 点子列表——过时的

是否有一个自动化的解决方案/命令允许我在所有 virtualenvs 上执行这些 pip 操作,而不必依次工作/激活/停用每个 virtualenv 并运行 pip 命令?

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

谢谢

4

1 回答 1

0

这早就应该得到答案了。如果您直接在binvirtualenv 的文件夹中运行 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-allor $ outdated-all。如果您喜欢这些行(不带 $ 提示符),您可以将它们添加到您的 .bashrc 文件中和/或修改它以适应您的口味。它可能缺乏润色,但它会完成工作。

于 2013-10-15T13:44:19.647 回答