Python pip+;使用pip处理百胜历史记录的等效方法是什么

Python pip+;使用pip处理百胜历史记录的等效方法是什么,python,linux,pip,Python,Linux,Pip,我正在搜索查找pip何时安装PKG的方法,如yum history yum history Loaded plugins: langpacks ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 42 | -y instal

我正在搜索查找pip何时安装PKG的方法,如
yum history

yum history
Loaded plugins: langpacks
ID     | Command line             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    42 | -y install libffi-devel* | 2020-06-09 01:07 | Install        |    1
    41 | -y install rabbitmq-serv | 2020-06-09 01:07 | Install        |   21
    40 | install -y gcc-gfortran. | 2020-06-09 01:06 | Install        |    2
    39 | install -y gcc-c++.x86_6 | 2020-06-09 01:06 | Install        |    2
    38 | -y install python-twiste | 2020-06-09 00:55 | Install        |    1
    37 | -y install python-zope-i | 2020-06-09 00:55 | Install        |    1
    36 | -y install yum install p | 2020-06-09 00:55 | Install        |    1
如上所述,
yum-history
准确描述了rpm的安装进度

查找pip安装的PKG的相同方法是什么

示例:

yum-history
可以显示在rpm依赖关系期间删除的rpm 所以,我们希望看到pip也一样——这可能吗

32 | remove -y python2-crypto | 2020-06-09 00:55 | Erase          |    3 EE
second-我们对由pip安装的ansible PKG有一些奇怪的看法,但在其他一些安装之后,我们没有看到ansible by
pip freeze | grep ansible

我使用以下python脚本获取已安装PKG的列表

#!/usr/bin/env python
# Prints when python packages were installed
from __future__ import print_function
from datetime import datetime
import os
import pip


if __name__ == "__main__":
    packages = []
    for package in pip.get_installed_distributions():
        package_name_version = str(package)
        try:
            module_dir = next(package._get_metadata('top_level.txt'))
            package_location = os.path.join(package.location, module_dir)
            os.stat(package_location)
        except (StopIteration, OSError):
            try:
                package_location = os.path.join(package.location, package.key)
                os.stat(package_location)
            except:
                package_location = package.location
        modification_time = os.path.getctime(package_location)
        modification_time = datetime.fromtimestamp(modification_time)
        packages.append([
            modification_time,
            package_name_version
        ])
    for modification_time, package_name_version in sorted(packages):
        print("{0} - {1}".format(modification_time,
                                 package_name_version))

但问题是脚本无法告诉我们ansible PKG是否已被删除

如果您没有记录它,您将不会有任何历史记录。您可以全局启用日志记录。这将是日志,而不是格式化的报告,但信息将在那里。请注意,尽管我没有真正看到了解安装包的时间的用例。你宁愿不知道版本吗?在这种情况下,
pip freeze
会这样做。查看更新,了解pkg是否以某种方式被删除很重要。很抱歉,我仍然没有看到用例。您的依赖项应该位于由修订控制系统管理的
requirements.txt
文件中。因此,依赖项的更改应该通过该文件的修订可见。目标是了解为什么ansible安装的某些pkg在一段时间后被其他安装删除。如果您没有记录它,您将不会有任何历史记录。您可以全局启用日志记录。这将是日志,而不是格式化的报告,但信息将在那里。请注意,尽管我没有真正看到了解安装包的时间的用例。你宁愿不知道版本吗?在这种情况下,
pip freeze
会这样做。查看更新,了解pkg是否以某种方式被删除很重要。很抱歉,我仍然没有看到用例。您的依赖项应该位于由修订控制系统管理的
requirements.txt
文件中。因此,依赖项的更改应该通过该文件的修订可见。目标是了解为什么ansible安装的某些pkg在一段时间后被其他安装删除