在给定的虚拟环境中记录所有 pip 命令?

log all pip commands in a given virtual environment?

我想记录在给定虚拟环境中执行的所有 pip 命令以及获得 installed/updated/removed 的软件包版本。有简单的方法吗?

或者,如果可能的话,我如何从我的虚拟环境状态中获取 requirements.txt(包括 --install-option 等)?据推测,只有直接依赖项需要存在。

您可以使用 history 命令查看所有命令的历史记录,然后将 grep for pip 输出到文件中。 类似于上面的评论。

编辑 pip 脚本以将其插入 __main__ 段的开头:

if __name__ == '__main__':
    import os
    env_dir = os.environ['VIRTUAL_ENV']
    with open(os.path.join(env_dir, 'pip_log.txt'), 'a') as f:
        f.write(' '.join(sys.argv[1:]) + '\n')

这会将对 pip 的每次调用记录到 virtualenv 目录中的 pip_log.txtPip 位于 virtualenv 的 bin 文件夹中,在激活脚本旁边。