Python:没有名为...的模块。如何使用pip

7
我是一名新手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 命令。 - kfx
我还没有。我需要试一下。 - onigiri
5个回答

10

pip是Python的包管理器。自版本3.4起,默认随Python一起安装,因此您应该使用它。

目前通常情况下,在Linux上,python会重定向到python2.7,并且由于一些旧的Linux工具存在问题,升级到Python3.x有点困难。

因此,您的操作系统可能同时拥有Python 2.7和Python 3.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)。 - Maciek

5

在我的情况下,我安装了错误的版本joblib。重新安装sklearn和joblib解决了这个问题。

pip uninstall sklearn
pip uninstall joblib

pip install sklearn
pip install joblib

2
我使用的是pip 20.0.2和Python 3.7版本,这里提供的其他解决方案对我没有用 - 可能是因为所有操作都在新的conda环境中进行。
我的环境是从根目录克隆而来(conda create -n myenv --clone base),所以它可能影响到joblib不存在,pip install joblib也没有效果。也许在conda环境克隆中存在特定的索引问题,但我通过以下方法解决了此问题:
conda install joblib

1

提及具体版本对我没有用,仍然导致相同的错误。我正在使用 VS Code 上的虚拟环境。这个方法解决了我的问题。

pip install joblib 

安装了1.1版本,这是之前没有的。

0
Python 安装依赖的方式是使用 pip,但我更喜欢在可用时使用操作系统官方依赖项,以避免与操作系统包管理器相关的兼容性和更新问题。在 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 包提供)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接