Subscribed unsubscribe Subscribe Subscribe

Jupyter lab 安装

安装conda(一个非常好用的Python科学计算环境,包含了几乎所有必须的数值计算lib):

安装JupyterLab(一个基于web browser的交互式python集成环境,非常适合Data Scientist)

github.com

基本上一个python的开发环境就算配置好了,但是遇到了一个问题。

JupyterLab内部的python的环境变量与系统里的不一致,比如在bash terminal里面用conda安装的pystruct无法在jupyterlab里直接import,很不方便。

查看细节:

分别在系统的bash terminal 和 jupyterlab的terminal里输入 python --version, 返回结果不一致,说明是因为调用的python内核版本不同。

Bash Terminal返回:Python 2.7.13 :: Continuum Analytics, Inc.

jupyterlab Termnal返回:Python 2.7.10

检查具体的python内核执行路径: sys.executable

Bash Terminal返回:'/Users/dj/miniconda2/bin/python'

jupyterlab Terminal返回:'/usr/local/opt/python/bin/python2.7'

果然是二者有出入,那么同步的方法很简单,很显然想要的是conda提供的那个python内核,所以只需要修改jupyterlab的配置文件,将它的内核指向conda下面的环境即可,访问

ls /usr/bin/python*

/usr/bin/python /usr/bin/python2.6-config /usr/bin/pythonw

/usr/bin/python-config /usr/bin/python2.7 /usr/bin/pythonw2.6

/usr/bin/python2.6 /usr/bin/python2.7-config /usr/bin/pythonw2.7

可见当前系统里有很多个python的版本

查看jupyterlab的配置文件

vim ~/.jupyter/jupyterlab_config.py

查找 /python, 看到配置文件中讲到jupyterlab实际默认执行的是 python2,在bash shell里python2 所对应的正是 conda 下的python 

/Users/dj/miniconda2/bin/python

再来检查一下 jupyter kernelspec list (kernelspec是一个非常强大的命令,后面我们就是用它来解决这个问题)

Available kernels:

  python2    /usr/local/lib/python2.7/site-packages/ipykernel/resources

kernelspec支持 install/remove/list等几乎所有的配置管理最基本的operation,使用起来非常方便。

 

简单概括 python2

在系统bash terminal里面,是conda的python

在jupyterlab里面,是系统的原生python

 

 

vim ~/.jupyter/jupyter_

解决方法:

 

经过修改,bash terminal 和 jupyterlab里的kernel

都对应了conda下面的 python 和ipython,于是两者的运行结果显然是一致的。

也可以通过查看module的版本得到证实

pip freeze | grep pystruct , 返回结果 pystruct==0.2.4

conda list | grep pystruct,返回null

 说明对于pip来说,pystruct是已经安装了的,但是对于conda来说pystruct是一个还没有安装过的module。那么,把pystruct装在conda里就可以了,方法很简答,pystruct的主页一行conda命令:[但问题又来了,pystruct的作者并没有放出它的conda安装],试一试安装指令 conda install pystruct 也是失败的:

PackageNotFoundError: Package missing in current osx-64 channels:

  - pystruct

好像一下子清晰的思路就又没了头脑,那先来看看能不能同步pip和conda的module,答案是很显然的不能。

 

----------------华丽的分割线----------------

虽然方法还没有找到,但顺手配置好了sigure上面的jupyterlab服务器

也算是今天聊以慰籍的一个进展吧。

 

参考:

[1]

http://qchem.tk/jupyter-notebook-on-apache/