【问题标题】:Requirements are satisified, but unable to import libraries in jupyter notebook满足要求,但无法在 jupyter notebook 中导入库
【发布时间】:2019-10-01 20:00:34
【问题描述】:

我想在 jupyter 中导入 numpy 和 pandas 但我收到消息:

----> 1 import pandas as pd

ModuleNotFoundError: No module named 'pandas'

现在,当我打开 anaconda 提示符并执行 pip list 时,我可以看到最新版本的 numpy

即使我说pip install,它也说要求已经满足。

我知道这在某种程度上与 python 的 PATH 相关。

老实说,作为具有数学背景的学习如何编码的人,我真的不确定这意味着什么以及如何检查和修复路径是否正确。

这是否意味着 jupyter 在哪里寻找 python.exe?我不确定在哪里检查。

Anaconda Prompt 中的where python 给了我:

C:\Users\MyName\Anaconda3\python.exe
C:\Program Files\Python37\python.exe

当我在 jupyter notebook 上运行它时:

from jupyter_core.paths import jupyter_data_dir
print(jupyter_data_dir())

我明白了:

C:\Users\NyName\AppData\Roaming\jupyter

这是问题的根源吗?

【问题讨论】:

  • 您可以打开一个 jupyter 终端并在那里安装软件包,这应该可以解决它。还要确保你的 pip 安装包的 python 版本作为你的 jupyter python env。
  • 所以我也尝试过,在 jupyter 中使用!pip install numpy,但这也没有解决问题。我刚收到Requirement already satisfied: numpy in c:\users\myname\anaconda3\lib\site-packages (1.17.2)

标签: python pandas numpy python-import


【解决方案1】:

问题在于您的 Jupyter 内核使用的 Python 与 Anaconda 提示符中的 Python 不同。

如果你不使用虚拟环境,你应该开始。要创建一个,请打开 Anaconda 提示并执行此操作(将名称 myenv 更改为您喜欢的任何名称):

conda create -n myenv python=3.7 jupyter matplotlib pandas

如果需要,也可以更改 Python 或其他包的版本。

完成后,切换到该环境:

conda activate myenv

现在这样做:

python -m ipykernel install --user --name myenv

这会为此环境添加一个 Jupyter 内核。 您只需在创建环境后执行一次。

现在重新启动 Jupyter notebook 或 Jupyter lab 等。或者,如果您愿意,可以在此环境中安装更多东西。你可以像这样使用pip

pip install awesomepackage

您现在应该可以在 Kernel > Change kernel 下看到您的环境,并且在制作新笔记本时可以在 New 下看到。

如果你知道这一切,请原谅我,但这是我能够保持环境整洁的唯一方法,并且确切地知道我在哪里安装东西。祝你好运!

【讨论】:

  • 不,我是新手,我不知道,谢谢。那么最后的 matplotlib 和 pandas 指定了该环境中包含哪些包?那么当我想使用它们时,我是否应该添加其他包,如 numpy?如果我需要更多包怎么办,是否都需要在第一行中指定它们?
  • 您可以在创建环境时指定它们,也可以稍后使用condapip 添加它们(或以其他方式,但首先您将主要使用这两个)。当您执行conda create 时,您不必指定任何包,但通常您至少需要jupytermatplotlib(这需要numpy,所以您可以“免费”获得)。您也不必指定 Python 版本,但我认为这是一个好习惯。
  • 那么每次我想在上面编码时都需要激活环境吗?这实际上有很大帮助,因为我应该使用 python 3.6 而不是 3.7
  • 是的,但是如果您在 Jupyter Notebook 或 Jupyter Lab 中,ipykernel 事情(每个环境只需在创建后立即执行一次)意味着您可以选择环境从 Jupyter 内部。 (因此无需进入终端输入conda activate myenv。)
【解决方案2】:

所以我找到的解决方案是简单地使用pip install 是不正确的。

This link 这里显示了它必须完成的方式。通过使用命令: !{sys.executable} -m pip install numpy

我能够正确导入包并使用它。

如果有人可以帮助我了解此命令的工作原理,那将非常有帮助。这解决了我的问题,但我真的不知道为什么或如何。

【讨论】:

  • 聪明,但你不应该以这种方式运行pip。希望我的回答有帮助。
  • 你能帮我理解为什么我不应该这样做吗?
  • 我的意思是,你可以,但它似乎不必要地笨重。基本上,如果您不能只输入pip install pkgname,则说明您的路径和/或环境有问题。
  • 对,路径和环境确实有问题。您能否告诉我如何诊断此类问题,或指导我获取有关此问题的一些材料?老实说,我不知道该谷歌什么。
  • 一旦你开始使用环境来处理所有事情,你基本上不需要担心路径等问题。
猜你喜欢
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 2019-08-18
  • 2020-11-06
  • 2018-07-28
  • 2019-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多