完美解决jupyter由于无法import新包的问题
jupyter因为其在python框架下具有一个较为人性化的设计,从而在数据分析,python教学,以及python的快速学习中大放光彩.
jupyter作为一个类似于spyder的一种编译器,其美观实用,而且还易于写博客吸引我.
但是由于在jupyter模式下写代码的时候,会发现通过pip install package命令行安装package完成之后,无法在jupyter模式下
import package,这点一直很困惑,进过百般google,还是找不到原因,或者说大家好像根本觉得这个不是事,因此,我在这里先
写个备忘,以免以后忘了
jupyter模式下实用的python编译路径与其他模式下的python编译路径是不一样的
在 jupyter 模式下,使用sys包的自省模式,找到自己的编译路径....(找了半天,发现有这个东西)
[1] import sys
[2] sys.path
['', '/home/zhangll/anaconda3/envs/ipykernel_py3/lib/python36.zip', '/home/zhangll/anaconda3/envs/ipykernel_py3/lib/python3.6', '/home/zhangll/anaconda3/envs/ipykernel_py3/lib/python3.6/lib-dynload', '/home/zhangll/anaconda3/envs/ipykernel_py3/lib/python3.6/site-packages', '/home/zhangll/anaconda3/envs/ipykernel_py3/lib/python3.6/site-packages/IPython/extensions', '/home/zhangll/.ipython']
输出结果可以发现,jupyter模式下python的编译器路径与Python其他编译器路径完全不一样.
jupyter编译默认路径是在 anaconda3/enves目录下,
但是原生python默认的路径在
['', '/home/zhangll/anaconda3/lib/python36.zip', '/home/zhangll/anaconda3/lib/python3.6', '/home/zhangll/anaconda3/lib/python3.6/lib-dynload', '/home/zhangll/anaconda3/lib/python3.6/site-packages', '/home/zhangll/anaconda3/lib/python3.6/site-packages/Sphinx-1.5.6-py3.6.egg', '/home/zhangll/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg']
所以,在通过termial/shell模式下安装的是在python默认路径,因此需要通过命令模式
$ cd /home/zhangll/anaconda3/envs/ipykernel_py3/bin
$ ./pip install package
这样才能在jupyter下正常使用
当然可以修改shell的命令路径的配置来修改pip命令
这个按揭不表
补充知识:将jupyter 放进你的新环境中
在新环境下pip install jupyter之后,输入
python -m ipykernel install --user --name=环境名即可