Python-虽已安装但未找到软件包

ecj*_*cjb 0 python package python-3.x

我有以下版本的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)]
Run Code Online (Sandbox Code Playgroud)

我使用以下命令安装了软件包

pip install wfdb

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

pip show wfdb

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

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

No module named 'wfdb'

它与python检查软件包位置的路径有关吗?如何检查和更改?

Mar*_*ers 5

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

pip是依赖于特定的Python安装,而且可以安装在不同位置的脚本的多个版本,而且通常还安装了一个脚本pipX,并pipX.Y以匹配X.Y的Python版本是依赖于版本的指标。对于Python 3.6,这意味着相同的脚本也将是可作为pip3和pip3.6。(这也意味着pip可以将其连接到Python 2或Python 3,具体取决于您的确切操作系统设置。pip不提供版本号就可以安装到Python 2.x 中,这并不是一定的答案)。

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

您始终可以验证该pip命令所连接的Python版本:

pip -V
Run Code Online (Sandbox Code Playgroud)

将会输出的版本pip和安装位置。它会打印类似

pip pipX.pipY path/to/pythonX.Y/site-packages/pip (python X.Y)
Run Code Online (Sandbox Code Playgroud)

pipX.pipYpip版本号在哪里,并path/to/pythonX.Y告诉您这是什么Python安装。

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

python -m site
Run Code Online (Sandbox Code Playgroud)

会输出该Python版本的Python模块搜索路径。Python也可以与一起运行python,pythonX并且pythonX.Y要进行相同的PATH搜索。

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

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

  • 由于您正在使用Anaconda,因此可以为同一项目寻找conda程序包。有这样的软件包wfdb。用安装

    conda install wfdb
    
    Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 您可以使用conda命令创建一个conda环境。创建环境后,您可以使用

    source activate <name_of_cenv>
    
    Run Code Online (Sandbox Code Playgroud)

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

    请注意,conda环境为您提供了针对特定项目的隔离环境,从而使库安装与其他Python软件包在中央site-packages位置分开。如果要为所有Anaconda Python项目安装软件包,请不要使用conda环境。

  • 使用Anaconda Python二进制文件pip作为模块运行;当您可以运行/path/to/python或pythoncommand打开正确的Python版本时,可以使用相同的路径运行,/path/to/python -m pip ...而不必pip ...绝对确定要安装到正确的Python版本中。

  • pip使用which -a pip或which -a pip3.6等寻找更好的命令。但是,如果您已经知道Python二进制文件,请在的相同bin位置查找pip。如果您有anaconda/bin/python,那么可能也有anaconda/bin/pip。