首页 > 解决方案 > 如何知道将什么导入 Python 解释器以使用已安装的 Python 库

问题描述

我通过执行以下操作安装了一个名为 PyRadiomics 的 python 库: pip install pyradiomics

当我pip freeze | grep pyra在命令提示符下执行时,我pyradiomics==2.0.0清楚地看到该库已安装。

当我启动 python 解释器并执行import pyradiomics时,它不起作用。我意识到我需要做的import radiomics

我只是碰巧碰巧弄明白了这一点。在使用 pip 安装库后,有人应该如何知道如何将库导入到他们的 python 脚本中。目前,您似乎可以安装一个库,pip install some_name并且必须import some_other_name在您的 Python 代码中执行此操作。我使用 Python 已经有一段时间了,但之前从未遇到过这种情况,这让我认为这some_name总是相同的,some_other_name但我发现事实并非如此。在安装了一个名为some_name

标签: pythonpipinstallation

解决方案


pip可以列出它安装的任何软件包的已安装文件:

$ pip show -f packagename

使用 bash 进行一些简单的输出过滤/转换,您可以轻松地提出一个自定义命令,该命令将列出包中的所有 Python 包/模块,例如:

$ pip show -f packagename | grep "\.py$" | sed 's/\.py//g; s,/__init__,,g; s,/,.,g'

包的示例输出wheel

$ pip install wheel
...
$ pip show -f wheel | grep "\.py$" | sed 's/\.py//g; s,/__init__,,g; s,/,.,g'
 wheel
 wheel.__main__
 wheel.archive
 wheel.bdist_wheel
 wheel.egg2wheel
 wheel.install
 wheel.metadata
 wheel.paths
 wheel.pep425tags
 wheel.pkginfo
 wheel.signatures
 wheel.signatures.djbec
 wheel.signatures.ed2551
 wheel.signatures.keys
 wheel.tool
 wheel.util
 wheel.wininst2wheel

您甚至可以将其别名为自定义 shell 命令,例如pip-list-modules. 在您的~/.bashrc(Linux) / ~/.bash_profile(MacOS) 中:

function pip-list-modules() {
    pip show -f "$@" | grep "\.py$" | sed 's/\.py//g; s,/__init__,,g; s,/,.,g'
}

测试它:

$ pip-list-modules setuptools wheel pip  # multiple packages can passed at once

推荐阅读