jupyter无法import安装在虚拟环境中的包

您所在的位置:网站首页 jupyter没有模块怎么解决 jupyter无法import安装在虚拟环境中的包

jupyter无法import安装在虚拟环境中的包

2024-07-17 00:22| 来源: 网络整理| 查看: 265

背景知识

首先需要知道,在Anaconda中创建的虚拟环境是被包含在Anaconda中的(逻辑上),示意图如下。 在这里插入图片描述 这二者有逻辑上的上下级关系,也有文件路径的上下级关系,虚拟环境中内容的路径比Anaconda中内容的路径更底层(具体请看下图二者的sys.path)。所以会涉及到一个问题:软件和包的路径到底是基于虚拟环境还是Anaconda。 当软件路径和包安装的位置不同时会引起很多问题,比如下文提到的这个。

问题描述

如果需要在Anaconda中使用自带的jupyter notebook编写代码,需要注意jupyter的sys.path是基于整个Anaconda的路径。 也就是说,如果需要import的包安装在虚拟环境下,基于Anaconda路径的jupyter是找不到在虚拟环境下的包的,因为虚拟环境的路径更底层。于是jupyter无法直接import,会报ModuleNotFoundError: No module named 'xxx'的错误。 在这种情况下,jupyter import失败,但虚拟环境中的python命令行可以正常import,就是因为python的路径是基于Anaconda的。 python中import正常 jupyter中import失败 查看二者的sys.path,会发现路径不同。 python的sys.path jupyter的sys.path 这也就是上文提到的问题——jupyter的sys.path是基于整个Anaconda的,而python的sys.path是基于自己建立的虚拟环境的。要解决这个问题只需要让包的路径和jupyter的路径统一即可。

解决方案

如果想要修改jupyter的sys.path,可以尝试StackOverflow中的这些方法,但windows环境下更适合尝试将jupyter连接到虚拟环境。 jupyter更改内核后即可正常import虚拟环境中的包: 在这里插入图片描述 正常import

ps:因为只有Linux环境下才有 .bashrc,所以修改 .bashrc文件的方法只有在Linux环境下才可以用(而且根据StackOverflow里的提问者的说法,不知道到底有没有用)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3