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)
<ipython-input-1-6bd034f81497> in <module>
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. 南京,南京市,京市,市长,长江,长江大桥,大桥
如有更简便的解决方案欢迎讨论