Pycharm Jupiter笔记本看不到虚拟环境包

问题描述 投票:0回答:3

我在 ~/tensorflow 中有一个 virtualenv,我可以在 Pycharm 中设置一个带有 .py 文件的项目来使用该 virtualenv 的 python(通过更改项目解释器)。事情就是这样进行的。但是,我无法在同一项目中获得 Jupyter 笔记本来查看 virtualenv 的包。看起来好像它只是为笔记本使用了不同的 python。

笔记本连接的服务器在同一个 virtualenv 中启动。 Web 客户端也可以在同一个 jupyter 服务器上正常工作。

我的猜测是 Pycharm 与 Jupyter 服务器的连接是使用不同的内核以某种方式建立的,但我不知道为什么或如何更改它。

pycharm jupyter-notebook
3个回答
1
投票

jupyter Notebook 不使用虚拟环境的 python 发行版,除非您直接在 jupyter 内核上指定它。

事实上,如果您在通过类似

./venv/bin/python -m jupyter notebook
的命令激活venv后运行jupyter笔记本,则只有包含终端命令的笔记本单元(以
!
开头的单元)在虚拟环境中运行。

您可以使用可用的 jupyter 内核或制作一个新内核。要查看可用的内核,请使用

jupyter kernelspec list
命令查找其路径。要制作新内核,请在终端中使用
ipython kernel install --user --name=venv

那么您应该考虑将内核更改为在虚拟环境中使用的Python分发路径。因此,请使用

jupyter kernelspec list
查找所需内核的路径。在此路径中,您应该看到
kernel.json
文件,其中包含:

{
 "argv": [
  "/PycharmProjects/myProject/venv/bin/python3",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "venv",
 "language": "python",
 "metadata": {
  "debugger": true
 }
}

您应该将此文件中的第一个成员

argv
指定为虚拟环境中使用的python发行版的路径。

要找到虚拟环境中使用的python,首先激活您的venv,然后在终端中提示

which python3
以查看venv中使用的python路径。

配置内核以在 venv 中使用 python 发行版后,您应该运行 jupyter notebook 并从顶部菜单中选择正确的内核。

注意

您可以通过

jupyter kernelspec uninstall venv

删除多余的内核

0
投票

我的问题是我有多个内核,PyCharm 启动默认内核。一种方法可能是设置 PyCharm 来指定选择启动的内核,我没有研究如何做到这一点。我只是更改了 Jupyter 中的默认内核,这对我有用(我有一个用于张量流的 virtualenv)。

c.MultiKernelManager.default_kernel_name = 'tensorflow'


0
投票

本文告诉您如何做到这一点: https://www.geeksforgeeks.org/using-jupyter-notebook-in-virtual-environment/

本质上,您需要从虚拟环境中创建一个新内核。然后可以从 Jupyter 的内核列表中选择该内核。

  • 使用以下命令创建新内核:ipython kernel install --user --name=[内核名称,例如文夫]
  • 从 Jupyter 的内核菜单中选择内核
  • 要卸载内核,请运行:jupyter-kernelspec uninstall [内核名称例如文夫]
© www.soinside.com 2019 - 2024. All rights reserved.