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-pip 和 python3-pip 包的形式提供)。
【讨论】:
以上是关于Python:没有命名模块...如何使用 pip的主要内容,如果未能解决你的问题,请参考以下文章
Python 2 & 3 兼容的命名空间模块(使用 pip)