获取虚拟环境python包安装日期的方法
我正在寻找一种方法,在VirtualNV中获取python包的安装日期,,但不使用python脚本。我不知道是否有像获取虚拟环境python包安装日期的方法,python,pip,packages,Python,Pip,Packages,我正在寻找一种方法,在VirtualNV中获取python包的安装日期,,但不使用python脚本。我不知道是否有像freeze这样的工具(至少)能给我这些信息 有什么想法吗?谢谢 我们可以用时间做这件事 import subprocess import time import os package_name = 'requests' package_param = subprocess.check_output( ['pip', 'show', package_na
freeze
这样的工具(至少)能给我这些信息
有什么想法吗?谢谢 我们可以用时间做这件事
import subprocess
import time
import os
package_name = 'requests'
package_param = subprocess.check_output(
['pip', 'show', package_name], stderr=subprocess.STDOUT)
# subprocess will return a string of type `bytes` with
# name, version, location, and we need to get Location, like so:
# Name: requests
# Version: 1.4.5
# another params
# Location: /my/env/lib/python2.7/site-packages
# here we decode pack, because this is a bytes, and spltit by '\n'
# go through this list of strings and check if we have `Location` in string
# if we have location we get this location and with `oc.path.getctime()`
# get the time when this package was created
for param in package_param.decode().split('\n'):
if 'Location' in param:
loc = param.split(':')[1].strip()
print("{}: {}".format(package_name, time.ctime(os.path.getctime(loc))))
输出
requests: Fri Jun 15 10:03:50 2018
实现相同功能的方法之一是检查站点包中的包目录修改日期 如果您使用的是linux环境,则可以运行以下命令: 检查活动python环境目录
$ which python
示例输出:/[virtualenv路径]/bin/python
要列出所有带有格式化日期的软件包
$ cd /[path-to-virtualenv]/lib/python-[version-number]/site-packages
$ ls -al --time-style="+%Y-%m-%d"
示例输出:drwxrwxr-x 19[用户][用户][文件大小][年-月-日][软件包名称]
要过滤带有特定日期的软件包,您可以使用grep:
$ ls -al --time-style="+%Y-%m-%d" | grep '2021-03-14'
预期输出:它将列出2020-03-14上修改的所有目录/文件我正在寻找一个没有python脚本的解决方案(至少目前是这样)。哦,对不起,我看不到这一点,但如果您需要它,这个脚本可以工作。这非常好,但对于所有安装的软件包来说都很好。有没有一种简单的方法可以从python中检索所有已安装的包?(例如,如果脚本接受带有列表的bash管道,这将是直接的。)