我有以下版本的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笔记本中输入命令import wfdb
或在终端中键入python版本时,会收到以下消息
No module named 'wfdb'
这与python检查软件包位置的路径有关吗?如何检查和更改它?
答案 0 :(得分:2)
您(至少)安装了2个Python,其中一个由Anaconda管理,另一个似乎是在整个系统范围内安装的官方Python.org Mac构建。命令行上的pip
命令是与Python.org Mac版本相关的命令。
pip
是与特定的Python安装相关的脚本,该脚本可以在不同位置安装多个版本,并且通常还与pipX
和{{1}一起安装}以匹配与其绑定的Python版本的pipX.Y
版本指示符。对于Python 3.6,这意味着相同的脚本也可以作为X.Y
和pip3
使用。 (这也意味着pip3.6
可以连接到Python 2或Python 3,具体取决于您的确切操作系统设置。没有pip
(没有版本号)就可以安装到Python 2.x中是不存在的。正如某些答案所声称的那样。
请注意,当您在外壳程序中运行没有路径的命令(例如pip
而不是pip
)时,您是在要求外壳程序为您查找大量的命令。位置,列在/usr/bin/pip
环境变量中。然后使用该命令固定PATH
列表中的第一个位置。 PATH
会告诉您可以在该命令中找到的所有可能的which -a <command>
注册位置。您始终可以对命令使用完整路径来绕过{{1} }搜索路径。
您始终可以验证PATH
命令所连接的Python版本:
PATH
,它将输出pip
的版本及其安装位置。它会打印类似
pip -V
其中pip
是点的版本号,pip pipX.pipY path/to/pythonX.Y/site-packages/pip (python X.Y)
告诉您这是什么Python安装。
您可以通过运行尝试将其与Python版本匹配
pipX.pipY
输出该Python版本的Python模块搜索路径。 Python也可以与path/to/pythonX.Y
,python -m site
和python
一起运行,并且受相同的pythonX
搜索。
请注意此处的pythonX.Y
开关,它指示Python在其模块搜索路径中找到一个模块并将其作为脚本执行。模块负载支持以这种方式运行,包括PATH
。这一点很重要,因为如果您已经可以启动正确的Python版本,则可以避免搜索更好的-m
命令。
您在这里有几个不错的选择:
由于使用的是Anaconda,因此可以为同一项目寻找conda软件包。那里is such a package for wfdb
。用
pip
Anaconda旨在为您提供更广泛的软件管理体验,其中不仅包括Python PyPI生态系统,还包括更多的软件选项,并且conda软件包通常管理的内容不仅限于Python软件包。
Conda软件包通常由与软件包本身不同的一组开发人员维护,因此PyPI上可能有比Conda更高的版本(需要pip
)。
这不是所有Python软件包的选项,如果没有conda install wfdb
软件包,则必须使用pip install
。参见Installing non-conda packages。
您可以使用conda
command to create a conda environment。创建环境后,您可以使用
conda
更改您的pip
设置。在环境为“ active”的情况下,source activate <name_of_cenv>
上列出的第一个目录是conda环境的目录,而PATH
命令将是与该环境相关的目录。
请注意,conda环境为您提供了一个特定项目的隔离环境,从而使库的安装与其他Python软件包在PATH
中心的位置分开。如果要为所有Anaconda Python项目安装软件包,请不要使用conda环境。
使用Anaconda Python二进制文件将pip
作为模块运行;当您可以运行site-packages
或pip
打开正确的Python版本时,可以使用相同的路径运行/path/to/python
而不是pythoncommand
来确定要安装到正确的Python版本。
使用/path/to/python -m pip ...
或pip ...
等寻找更好的pip
命令,但是,如果您已经知道Python二进制文件,请查找相同的which -a pip
which -a pip3.6
的位置。如果您有bin
,那么也可能还有pip
。
答案 1 :(得分:1)
您可以阅读here:
pip3和pip仅在不使用任何pip时才有所不同 virualenv(或conda)之类的环境经理。现在就像你一样 创建一个具有python == 3.x的conda环境,pip为 相当于pip3。
由于这个原因,可能是您在安装必需的软件包和运行代码之前未激活Conda环境。
激活新环境:
在Windows上:
activate myenv
在macOS(应该由您选择)和Linux上:
source activate myenv
注意:用环境名称替换myenv。
答案 2 :(得分:1)
您已经安装了python2.x软件包,并且正在使用python3.x。试试:
pip3 install wfdb
如果您没有运行pip3
:
[apt-get/yum] install pythion3-pip
您始终可以通过运行以下命令查看当前已安装的软件包:
pip freeze
以及适用于python 3.x软件包
pip3 freeze
请记住,每次安装Python软件包时,它将被放置在一个特定Python版本的目录中。因此,您的错误。
答案 3 :(得分:0)
which python
为您提供PATH
到python
然后是/path/to/python -m pip install thepackagetobeinstalled
非常感谢@MartijnPieters