Python3:以编程方式列出虚拟环境中所有已安装的包和版本[重复]

Posted

技术标签:

【中文标题】Python3:以编程方式列出虚拟环境中所有已安装的包和版本[重复]【英文标题】:Python3: list all installed packages and versions in a virtual environment programmatically [duplicate] 【发布时间】:2021-01-18 02:59:22 【问题描述】:

我正在使用 pipenv 创建一个虚拟环境,我正在编写一个脚本来获取所有已安装的包并将它们的名称和版本放入字典中,就像从 virutualenv 中调用 pip list 一样:

> C:\Users\my_project > pipenv shell
>(.venv) C:\Users\my_project > pip list
Package         Version
--------------- ---------
argcomplete     0.8.1
bottle          0.12.4
certifi         2020.6.20
colorama        0.4.3
cx-Oracle       7.3.0
cycler          0.10.0
...

【问题讨论】:

os.system('pip list') 不起作用,因为它列出了“全局环境”而不是虚拟环境中的包 @jabberwocky 已经回答了一个类似的问题。这个解决方案对我来说很好。 import pkg_resourcesinstalled_packages = d.project_name: d.version for d in pkg_resources.working_set 【参考方案1】:

可以使用类似下面的东西

import subprocess
out = subprocess.Popen(['pip', 'list'],
           stdout=subprocess.PIPE,
           stderr=subprocess.STDOUT)
stdout,stderr = out.communicate()

print(stdout)

然后您可以以所需的格式解析标准输出

【讨论】:

以上是关于Python3:以编程方式列出虚拟环境中所有已安装的包和版本[重复]的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式列出已授予访问权限的 Bigquery 数据集,而无需事先知道项目 ID

以编程方式获取 Windows 中所有已安装更新的列表

以编程方式:列出在实体框架模型中找到的所有存储过程

以编程方式获取已安装的应用程序详细信息以打开 pdf

以编程方式递归列出eclipse工作区中的所有文件

如何以编程方式列出解决方案中的所有项目?