我有以下版本的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
但是,当我输入命令
import wfdb
时在 Python notebook 或终端中的 python 版本中,我收到以下消息No module named 'wfdb'
它与python检查包在哪里的路径有关吗?如何检查这一点以及如何更改它?
最佳答案
您(至少)有 2 个 Python 安装,一个由 Anaconda 管理,另一个似乎是在系统范围内安装的官方 Python.org Mac 版本。命令行上的pip
命令是与 Python.org Mac 构建相关的命令。pip
是绑定(bind)到特定Python安装的脚本,不同位置可以安装多个版本的脚本,通常还会安装pipX
和pipX.Y
来匹配X.Y
版本指示它绑定(bind)到的 Python 版本。对于 Python 3.6,这意味着相同的脚本也可以用作pip3
和pip3.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 也可以使用python
、pythonX
和pythonX.Y
运行,并且受制于相同的PATH
搜索。请注意那里的
-m
开关,它指示 Python 在其模块搜索路径中查找模块并将其作为脚本执行。大量模块支持以这种方式运行,包括pip
。这很重要,因为如果您已经可以启动正确的 Python 版本,这有助于避免搜索更好的pip
命令。您有几个不错的选择:
wfdb
。安装它 conda install wfdb
Anaconda 旨在为您提供更广泛的软件管理体验,其中包括比 Python PyPI 生态系统更广泛的软件选项集,并且 conda 包通常管理的不仅仅是 Python 包。Conda 包通常由与包本身不同的一组开发人员维护,因此 PyPI 上可能有比 Conda 更新的版本(需要
pip install
)。这不是所有 Python 包的选项,如果没有
conda
包,则必须使用pip
。参见Installing non-conda packages。conda
command to create a conda environment。创建环境后,您可以使用以下命令激活它 source activate <name_of_cenv>
更改您的PATH
设置。在“事件”环境中,PATH
上列出的第一个目录是 conda 环境的目录,而pip
命令将是与该环境相关联的目录。请注意,conda 环境为特定项目提供了一个独立的环境,使库安装与位于中央
site-packages
位置的其余 Python 包分开。如果要为所有 Anaconda Python 项目安装一个包,请不要使用 conda 环境。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
。关于Python - 虽然已安装但未找到包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53152047/