jupyter模式下写代码时,通过pip install package命令行安装package完成之后,无法在jupyter模式下import ,这是个通用的问题,我这里遇到的是import jieba,可能import 别的package也会出现,记录下,也花了点时间排查。。。
环境
windows10
anaconda3
jieba
python3
问题
python3版本,已经安装好了jieba模块,并且已经本地写个.py的测试jieba分词的python文件可以运行
但是就是在jupyter notebook中无法import。类似其他module也会有类似情况
如下
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
in
5 import pandas as pd
6 import numpy as np
----> 7 import jieba
8 import codecs
9 import re
ModuleNotFoundError: No module named 'jieba'
解决
乍一看就是jieba模块不存在,但是实际上python环境已经安装过了,如下检查
C:\Users\明柯>pip install jieba
Requirement already satisfied: jieba in e:\study\python3\lib\site-packages (0.39)
说明跟有无安装jieba这个东西无关,而是jupyter notebook认为没安装,没找到这个。
检查当前系统下的module脚本安装路径(也可以理解为编译路径)
C:\Users\明柯>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'E:\\study\\Python3\\python37.zip', 'E:\\study\\Python3\\DLLs', 'E:\\study\\Python3\\lib', 'E:\\study\\Python3', 'E:\\study\\Python3\\lib\\site-packages']
>>>
检查jupyter notebook运行环境下的脚本安装路径(编译路径),我的notebook是在anoconda3里的,如下
如下是在jupyter notebook浏览器里打开的ipython3文件里操作
In [1]: import sys
In [2]: sys.path
Out[2]: ['D:\\GitTest\\badou\\QAboard\\work\\class1\\45',
'E:\\study\\anacoda3\\python37.zip',
'E:\\study\\anacoda3\\DLLs',
'E:\\study\\anacoda3\\lib',
'E:\\study\\anacoda3',
'',
'E:\\study\\anacoda3\\lib\\site-packages',
'E:\\study\\anacoda3\\lib\\site-packages\\win32',
'E:\\study\\anacoda3\\lib\\site-packages\\win32\\lib',
'E:\\study\\anacoda3\\lib\\site-packages\\Pythonwin',
'E:\\study\\anacoda3\\lib\\site-packages\\IPython\\extensions',
'C:\\Users\\明柯\\.ipython']
如上可知,系统的路径与anaconda3的jupyter notebook理解的路径不一样,所以有这个问题。因为anaconda3自己会安装需要的module,且不会和系统混合公用,所以他名下的模块安装路径(编译路径)肯定和系统的python模块路径不一样。
解决:进入到E:\study\anacoda3这个路径下有个Scripts目录,在这里面文件路径栏里直接输入cmd(或者cmd 然后cd到E:\study\anacoda3\Scripts路径下),进行安装jieba
注意,若需要指定版本则pip install jieba=0.39这样
E:\study\anacoda3\Scripts>pip install jieba
Collecting jieba
Downloading jieba-0.42.1.tar.gz (19.2 MB)
|████████████████████████████████| 19.2 MB 939 kB/s
Building wheels for collected packages: jieba
Building wheel for jieba (setup.py) ... done
Created wheel for jieba: filename=jieba-0.42.1-py3-none-any.whl size=19314481 sha256=ac593ad59de55018cc6750101fe6cab7b9e1a3695fbb26044dd3c3ae0a10a0ca
Stored in directory: c:\users\明柯\appdata\local\pip\cache\wheels\24\aa\17\5bc7c72e9a37990a9620cc3aad0acad1564dcff6dbc2359de3
Successfully built jieba
Installing collected packages: jieba
Successfully installed jieba-0.42.1
E:\study\anacoda3\Scripts>
验证
安装完毕后,再次去jupyter notebook里试下import jieba
In [3]: import jieba
In [4]: # 全模式
seg_list = jieba.cut("南京市长江大桥",cut_all=True)
print(",".join(seg_list))
Building prefix dict from the default dictionary ...
Dumping model to file cache C:\Users\明柯\AppData\Local\Temp\jieba.cache
Loading model cost 1.001 seconds.
Prefix dict has been built successfully.
南京,南京市,京市,市长,长江,长江大桥,大桥
如有更简便的解决方案欢迎讨论