【问题标题】:Jupyter Notebook in virtual environment doesn't see the virtual env packages虚拟环境中的Jupyter笔记本没有看到虚拟env包
【发布时间】:2018-02-13 13:46:38
【问题描述】:

我正在尝试在虚拟环境中使用 Jupyter Notebook。 我创建了一个新的 virtualenv virtualenv ker12 + 激活 + 安装特定版本的 keras 或任何其他库。

也正如Using a virtualenv in an IPython notebook 中提到的那样:

pip install ipykernel

python -m ipykernel install --user --name=my-virtualenv-name

当我运行笔记本并写作时 ! which jupyter输出正确

/Users/myname/virtualenv/ker12/bin/python

但是当我尝试导入库时,例如import keras 时出现错误。

ImportError: 没有名为 keras 的模块

但另一方面,当我写pip freeze | grep Keras 输出是:

Keras==1.2.0

更新 1:

此问题与 Keras 无关,它发生在任何其他库(例如 pandas)中

如果我打印os.path,输出如下:

从“命令行 python”来看,os.path 看起来是正确的

更新 2:

如果我从终端打印sys.pathjupyter,输出也不同:

从终端

/Users/myname/virtualenv/ker12/lib/python27.zip /Users/myname/virtualenv/ker12/lib/python2.7 /Users/myname/virtualenv/ker12/lib/python2.7/plat-darwin /Users/myname/virtualenv/ker12/lib/python2.7/plat-mac /Users/myname/virtualenv/ker12/lib/python2.7/plat-mac/lib-scriptpackages /Users/myname/virtualenv/ker12/lib/python2.7/lib-tk /Users/myname/virtualenv/ker12/lib/python2.7/lib-old /Users/myname/virtualenv/ker12/lib/python2.7/lib-dynload /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7 /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework /Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages /Users/myname/virtualenv/ker12/lib/python2.7/site-packages

来自 JUPYTER

/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python27.zip /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7 /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework /Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload /usr/local/lib/python2.7/site-packages /usr/local/lib/python2.7/site-packages/IPython/extensions /Users/myname/.ipython `

【问题讨论】:

  • 试试pip freeze -l(列出venv本地的包)——Keras还在吗?
  • 是的,Keras 也出现在 pip freeze -l
  • 尝试使用完整的 python/jupyter 路径。见this answer

标签: jupyter-notebook virtualenv jupyter


【解决方案1】:

解决方法是使用以下命令打开 jupyter notebook:

~/virtualenv/my_venv_name/bin/jupyter-notebook

【讨论】:

  • 对我来说它说:bash: /home/pal/virtualenv/env1/bin/jupyter-notebook: No such file or directory
  • 你检查过,你确实有这个目录吗?
  • 这对我不起作用,仍然给我一个 ModuleNotFoundError
【解决方案2】:

您不应该安装 ipykernel - 相反,您应该在虚拟环境中进行完整的 Jupyter 安装 (pip install jupyter)。此外,请确保不要使用 --system-site-packages 选项创建虚拟环境。

另见this answer

【讨论】:

  • @deserhaut,我还添加了其他详细信息 [更新],这可能会给问题来源带来“更多亮点”。
  • @MichaelD 你能分享jupyter kernelspec list 命令和which jupyter 的结果吗,无论是在“主”python 还是在虚拟环境中?
  • 没有 virtualenv 有一个错误>“执行 Jupyter 命令 'kernelspec' 时出错:[Errno 2] 没有这样的文件或目录”但是在 virtualenviroment(任何一个)中,输出如下:bash /Users/myname/Library/Jupyter/kernels/bash ker12 /Users/myname/Library/Jupyter/kernels/ker12phi /Users/myname/Library/Jupyter/kernels/phipython /Users /myname /virtualenv/ tf_new/ bin/../ share /jupyter/kernels / python2 @desertnaut
猜你喜欢
  • 1970-01-01
  • 2018-07-06
  • 2020-01-26
  • 2019-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多