Python - 尽管已安装但找不到包

新手上路,请多包涵

我有以下版本的python

 import sys
print(sys.version)

3.6.5 | packaged by conda-forge | (default, Apr  6 2018, 13:44:09)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]

我使用以下命令安装了一个包

pip install wfdb

它已成功安装,因为当我编写命令时:

pip show wfdb

出现如下信息位置:/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages

但是,当我在 Python 笔记本或终端中的 python 版本中键入命令 import wfdb 时,我收到以下消息

No module named 'wfdb'

它与 python 检查包位置的路径有关吗?如何检查它以及如何更改它?

原文由 ecjb 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 786
2 个回答

您(至少)安装了 2 个 Python,一个由 Anaconda 管理,另一个似乎是在系统范围内安装的官方 Python.org Mac 版本。命令行上的 pip 命令是与 Python.org Mac 构建相关的命令。

pip 是绑定到特定 Python 安装的脚本,可以在不同位置安装多个版本的脚本,通常还安装 pipXpipX.Y 匹配 X.Y 它所绑定的 Python 版本的版本指示符。对于 Python 3.6,这意味着相同的脚本也可以用作 pip3pip3.6 。 (这也意味着 pip 可以连接到 Python 2 或 Python 3,具体取决于您的具体操作系统设置。没有给定的 pip 没有版本号,安装到某些答案可能声称是 Python 2.x)。

请注意,当您在 shell 中运行没有路径的命令时(例如 pip/usr/bin/pip 相对),您是在要求 shell 在数字中为您找到命令位置,列在 PATH 环境变量中。然后固定带有该命令的 PATH 列表中的第一个位置。 which -a <command> 会告诉你所有可能的 PATH 可以找到该命令的注册位置。您始终可以使用命令的 完整路径 来绕过 PATH 搜索路径。

您始终可以验证 pip 命令连接到哪个 Python 版本:

 pip -V

这将输出 pip 的版本及其安装位置。它会打印类似的东西

pip pipX.pipY path/to/pythonX.Y/site-packages/pip (python X.Y)

其中 pipX.pipY 是 pip 版本号, path/to/pythonX.Y 告诉你这是为了什么 Python 安装。

您可以尝试通过运行将其与 Python 版本相匹配

python -m site

它输出该 Python 版本的 Python 模块搜索路径。 Python can be run with python , pythonX and pythonX.Y too, and is subject to the same PATH search.

请注意那里的 -m 开关,它指示 Python 在其模块搜索路径中查找模块并将其作为脚本执行。大量模块支持以这种方式运行, 包括 pip 。这很重要,因为如果您已经可以启动正确的 Python 版本,这有助于避免搜索更好的 pip 命令。

您在这里有几个不错的选择:

  • 由于您使用的是 Anaconda,因此您可以为同一项目寻找一个 conda 包。 wfdb 有这样一个包。安装它
    conda install wfdb

Anaconda 旨在为您提供更广泛的软件管理体验,其中包括比 Python PyPI 生态系统更广泛的软件选项集,并且 conda 包通常管理的不仅仅是 Python 包。

Conda 包通常由与包本身不同的一组开发人员维护,因此 PyPI 上的可用版本(需要 pip install )可能比 Conda 上的版本更新。

这不是所有 Python 包的选项,如果没有 conda 包,您必须使用 pip 。请参阅 安装非 conda 软件包

    source activate <name_of_cenv>

更改您的 PATH 设置。在环境“活动”的情况下,您的 PATH 上列出的第一个目录是 conda 环境的目录,而 pip 命令将是与该环境相关的目录。

请注意,conda 环境为特定项目提供了一个隔离环境,使库安装与中央 site-packages 位置中的其余 Python 包分开。如果您想为所有 Anaconda Python 项目安装一个包,请不要使用 conda 环境。

  • 使用 Anaconda Python 二进制文件作为模块运行 pip ; when you can run /path/to/python or pythoncommand to open the right Python version, you can use that same path to run /path/to/python -m pip ... instead of pip ... 绝对确定您安装的是正确的 Python 版本。

  • Look for a better pip command, with which -a pip or which -a pip3.6 , etc. But if you already know the Python binary, look in the same bin pip 的位置。如果你有 anaconda/bin/python ,那么也可能有一个 anaconda/bin/pip

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 4.0 许可协议

which python

给你 PATH 到 python

然后 /path/to/python -m pip install thepackagetobeinstalled

非常感谢@MartijnPieters

原文由 ecjb 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题