Python:没有命名模块...如何使用 pip

Posted

技术标签:

【中文标题】Python:没有命名模块...如何使用 pip【英文标题】:Python: No module named ... How to use pip 【发布时间】:2016-01-30 15:08:38 【问题描述】:

我是 Python 新手,在导入库时遇到问题。

我写了一个代码

from sklearn.linear_model import LogisticRegression

然后我得到一个错误

ImportError                               Traceback (most recent call last)
<ipython-input-19-c84b03903d9e> in <module>()
----> 1 from sklearn.linear_model import LogisticRegression

/usr/lib/python2.7/dist-packages/sklearn/linear_model/__init__.py in <module>()
     10 # complete documentation.
     11 
---> 12 from .base import LinearRegression
     13 
     14 from .bayes import BayesianRidge, ARDRegression

/usr/lib/python2.7/dist-packages/sklearn/linear_model/base.py in <module>()
     22 
     23 from ..externals import six
---> 24 from ..externals.joblib import Parallel, delayed
     25 from ..base import BaseEstimator, ClassifierMixin, RegressorMixin
     26 from ..utils import as_float_array, atleast2d_or_csr, safe_asarray

/usr/lib/python2.7/dist-packages/sklearn/externals/joblib/__init__.py in <module>()
      1 # yoh: use system-wide joblib
      2 
----> 3 from joblib import *

ImportError: No module named joblib

在 IPython 中。 我正在使用 ubuntu,并使用“sudo apt-get install python-sklearn”命令安装了 scikit_learn-0.18,但遇到了上述错误。 我也尝试使用“sudo easy_install joblib”,但错误没有被删除。

怎么了?你能帮我吗?谢谢。

【问题讨论】:

您是否尝试过单独安装该模块,例如使用pip install joblib 不,我没有。我需要尝试一下。 【参考方案1】:

pip 是 python 的包管理器。 从 3.4 版开始,它默认与 python 一起提供,所以你应该使用它。

目前,Linux 上的 python 通常会重定向到 python2.7,由于一些旧的 linux 工具,升级到 python3.x 时会出现问题。

所以你可能会在某个时候在你的操作系统上同时安装 python2.7 和 python3.x。

如果您不确定是否有要使用的 python 版本的 pip,请安装它:

cd /tmp
wget https://bootstrap.pypa.io/get-pip.py
python3.4 get-pip.py # install pip for any python -v (3.4 here but replace with yours)
rm get-pip.py -f

现在pip已经安装好了,你可以用它来搜索/安装/升级/删除/...python包了。

让我们安装joblib:

python3.4 -m pip install joblib # install packets for a particular version easily

如您所见,我不使用pip install,而是使用python3.x -m pip install,因此 pip 会为特定版本的 python 安装库。

【讨论】:

py -3 -m pip install joblib 也应该完成这项工作。如果您知道特定版本的 python,那么:py -3.4 -m pip install joblib(适用于 python 3.4)。【参考方案2】:

对我来说,我安装了错误的 joblib 版本。重新安装 sklearn 和 joblib 解决了这个问题。

pip uninstall sklearn
pip uninstall joblib

pip install sklearn
pip install joblib

【讨论】:

【参考方案3】:

我使用的是 pip 20.0.2 和 python 3.7,这里的其他解决方案对我不起作用 - 可能是因为这一切都发生在一个新的 conda 环境中。

我的 env 是从根目录 (conda create -n myenv --clone base) 克隆的,因此它可能会影响 joblib 不存在,而 pip install joblib 无效。 conda env 克隆中可能存在特定的索引问题,但我确实设法解决了这个问题

conda install joblib

【讨论】:

【参考方案4】:

提及特定版本对我不起作用,仍然导致相同的错误 我在 vs 代码上使用 virtualenv 这为我解决了它

pip install joblib 

(安装了以前没有安装的 1.1)

【讨论】:

【参考方案5】:

安装依赖项的 Python 方法是 pip,但我更喜欢在可用时使用 OS 官方依赖项,以避免失去与 OS 包管理器相关的兼容性和更新。 在 Ubuntu 中有很多 python 包,它们有两个不同的版本:一个用于 Python 2.7,一个用于 Python 3.4。 首先尝试安装 joblib,搜索 python3-joblib 包名称为 python 3 或 python-joblib 为 python 2。如果您的 Ubuntu 版本仍然没有所需的依赖项您可以使用 pip(pip2.7 或 pip3.4,均以 python-pippython3-pip 包的形式提供)。

【讨论】:

以上是关于Python:没有命名模块...如何使用 pip的主要内容,如果未能解决你的问题,请参考以下文章

如何用pip为Python3安装模块

如何用pip为Python3安装模块

Python 2 & 3 兼容的命名空间模块(使用 pip)

如何为 python 应用程序安装 Qt 模块

Python-在没有网络的情况下pip超时无法下载包时解决包的安装

在没有 pip/pip3 的情况下安装诸如“Web3”之类的 python 模块?