Jupyter Notebook调用指定的虚拟环境的实现示例

 更新时间:2023年07月11日 09:42:07   作者:Jame__  
本文主要介绍了Jupyter Notebook调用指定的虚拟环境的实现示例,,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1 问题由来

不久前,jupyter notebook运行时出现了kernel error的问题,于是上网搜索方法,发现运行如下命令能够解决问题:

python -m ipykernel install --user

本人Anaconda中自行配置了一个名为data的虚拟环境,并在此环境中安装了诸多专门的用于数据处理的package。

问题来了:

  • 某天突然发现,虽然是从指定虚拟环境进入Notebook,但依旧无法使用data中的库。
  • 然而,退出来运行命令conda list查询,可以发现所有想要的包就好好地躺在里面。

2 发现原因

知识点:虽然Jupyter Notebook是在data的虚拟环境中启动的(Mac启动命令为source activate environment_name)。但是它居然还可能是运行的默认环境,而不是你指定的虚拟环境,这就是问题所在。

出现这种问题的原因,可能就是前面命令行将设置给初始化了之类的(仅猜测)。

运行如下代码可以查询目前的Notebook究竟运行的是哪一个虚拟环境:

import os, sys
print(sys.executable) # works this time
print(sys.version)
print(sys.version_info)

输出结果如下:

>>> /Users/yj/opt/anaconda3/bin/python
>>> 3.7.4 (default, Aug 13 2019, 15:17:50) 
[Clang 4.0.1 (tags/RELEASE_401/final)]
>>> sys.version_info(major=3, minor=7, micro=4, releaselevel='final', serial=0)

此时显示的是Anaconda的默认虚拟环境,不是我想要的。

3 解决方法

通过如下命令可以查询你计算机安装的所有虚拟环境:

conda env list
>>> # conda environments:
>>> #
>>> base                  *  /Users/yj/opt/anaconda3
>>> data                     /Users/yj/opt/anaconda3/envs/data

这里我想要的是data这个环境。接下来要做的就是将这个环境加入到Jupyter Notebook的Kernel中。代码及说明如下:

# 第一步,切换到想要添加的虚拟环境:
conda activate data
# 第二步,安装ipykernel包
conda install ipykernel
# 第三部,执行如下命令,并确定环境的名称(此处设置为data)
python -m ipykernel install --name data

务必注意第1步必不可少。重启Notebook,可以看到已经有新的环境可以选择:

已有新环境可以选择

重新查询运行环境,发现已经更改为自己想要的虚拟环境,终于又重新可以调用要用的包了。

>>> /Users/yj/opt/anaconda3/envs/data/bin/python
>>> 3.7.5 (default, Oct 25 2019, 10:52:18) 
[Clang 4.0.1 (tags/RELEASE_401/final)]
>>> sys.version_info(major=3, minor=7, micro=5, releaselevel='final', serial=0)

注意第一行多了个data,第二行python版本也不一样了。

4 补充

4.1 异常处理

执行python -m ipykernel install --name data后,出现[Errno 13] Permission denied: '/usr/local/share',则可以将名利修改为:

python -m ipykernel install --user --name data

显示成功,撒花庆祝

4.2 Notebook的tab扩展失效

安装了ipykernel包之后,有的小伙伴会出现tab键失效的问题,这里是因为jedi这个包在作怪,把它干掉就好了

pip uninstall jedi --yes

到此这篇关于Jupyter Notebook调用指定的虚拟环境的实现示例的文章就介绍到这了,更多相关Jupyter Notebook调用指定虚拟环境内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • numpy.meshgrid()理解(小结)

    numpy.meshgrid()理解(小结)

    这篇文章主要介绍了numpy.meshgrid()理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • python3.5基于TCP实现文件传输

    python3.5基于TCP实现文件传输

    这篇文章主要为大家详细介绍了python3.5基于TCP实现文件传输的代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • python isinstance函数用法详解

    python isinstance函数用法详解

    这篇文章主要介绍了python isinstance函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 跟老齐学Python之画圈还不简单吗?

    跟老齐学Python之画圈还不简单吗?

    画圈?换一个说法就是循环。循环,是高级语言编程中重要的工作。现实生活中,很多事情都是在循环,日月更迭,斗转星移,无不是循环;王朝更迭,寻常百姓,也都是循环。
    2014-09-09
  • Python小白必备的8个最常用的内置函数(推荐)

    Python小白必备的8个最常用的内置函数(推荐)

    这篇文章主要介绍了Python常用的内置函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • PyCharm使用matplotlib报MatplotlibDeprecationWarning问题解决办法

    PyCharm使用matplotlib报MatplotlibDeprecationWarning问题解决办法

    这篇文章主要给大家介绍了关于PyCharm使用matplotlib报MatplotlibDeprecationWarning问题解决的相关资料,主要是 matplotlib版本过高导致的,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Pygame与OpenCV联合播放视频并保证音画同步

    Pygame与OpenCV联合播放视频并保证音画同步

    Pygame的Movie模块已经废弃多年,本文主要介绍了Pygame与OpenCV联合播放视频并保证音画同步,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Python--模块(Module)和包(Package)详解

    Python--模块(Module)和包(Package)详解

    这篇文章主要介绍了Python中模块(Module)和包(Package)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-09-09
  • Python使用struct库的用法小结

    Python使用struct库的用法小结

    struct模块执行Python值和以Python bytes表示的C结构体之间的转换,这可以用于处理存储在文件中或来自网络连接以及其他源的二进制数据,下面介绍下Python使用struct库的用法,感兴趣的朋友一起看看吧
    2022-05-05
  • 使用python制作一个压缩图片小程序

    使用python制作一个压缩图片小程序

    这篇文章主要为大家详细介绍了如何使用python制作一个压缩图片小程序,文中的示例代码简洁易懂,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2023-10-10

最新评论