获取 pip 安装包的安装目录名称
Posted
技术标签:
【中文标题】获取 pip 安装包的安装目录名称【英文标题】:Get name of installation directory for pip installed package 【发布时间】:2022-01-23 20:30:07 【问题描述】:我需要获取一个使用pip安装的Python3包的安装目录。
我有一个包裹,比如说mkdocs-mermaid2-plugin
。
pip install mkdocs-mermaid2-plugin // being installed to site-packages/mermaid2
如果我在 Python 中使用这个包,我可以这样做import mermaid2
。
我需要一个脚本,它为给定的 Python 包名称mkdocs-mermaid2-plugin输出安装目录的名称。
$ ./print-installation-directory-of-package.py mkdocs-mermaid2-plugin
mermaid2
【问题讨论】:
【参考方案1】:你可以通过 pip 命令来做到这一点
pip show mkdocs-mermaid2-plugin
这将显示有关该 pip 包的所有信息
如果您想获取有关安装了哪些软件包的信息,您可以这样做
pip list
例子:
pip show xkit
返回
Name: xkit
Version: 0.0.0
Summary: library for the manipulation of the xorg.conf
Home-page: https://launchpad.net/x-kit
Author: Alberto Milone
Author-email: albertomilone@alice.it
License: GPL v2 or later
Location: /usr/lib/python3/dist-packages
Requires:
Required-by:
如果您只想返回位置,您可以使用以下方法来执行此操作
pip show xkit | grep -F Location
【讨论】:
感谢您的回答!希望我是盲人,但这并没有显示实际的安装目录。请记住,在我的示例中,包名和安装目录是不同的。 本例中的安装目录是位置,上面的例子是在linux上运行的,但在windows上应该以同样的方式工作 但我正在搜索 /usr/lib/python3/dist-packages/xkit,而不是 /usr/lib/python3/dist-packages(在 xkit 情况下,我可以只附加“xkit”到 pip show 提供的“位置:”,但在我的示例中我不能)。【参考方案2】:用法:
$ ./print-directory-of-module.py mkdocs-mermaid2-plugin
mermaid2
来源:
#!/usr/bin/env python
import os
import sys
import importlib.metadata
from importlib.metadata import distribution
args = sys.argv[1:]
if len(args) > 0:
try:
dist = distribution(args[0])
except importlib.metadata.PackageNotFoundError as e:
print('Package not found'.format(e), file=sys.stderr)
sys.exit(1)
pathToTopLevelFile = os.path.join(dist._path, "top_level.txt")
f = open(pathToTopLevelFile)
print(f.read().strip())
这个解决方案有效 - 但丑得要命,一定有更好的方法。
【讨论】:
以上是关于获取 pip 安装包的安装目录名称的主要内容,如果未能解决你的问题,请参考以下文章