Python在Jupyter Notebook中看不到软件包

时间:2019-11-15 17:33:56

标签: python python-3.x pip jupyter-notebook

我在虚拟环境中使用Jupyter Notebook。 我安装了一个依赖项,但是无法导入它:

单元格1:
!pip3 install sent2vec

Requirement already satisfied: sent2vec in 
venv/lib/python3.7/site-packages (0.0.0)

单元格2:
import sent2vec

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-5-06231d291a17> in <module>
----> 1 import sent2vec

ModuleNotFoundError: No module named 'sent2vec'

这怎么可能发生?该如何解决?

> pip3 list
Package      Version  
------------ ---------
certifi      2019.9.11
chardet      3.0.4    
Cython       0.29.14  
idna         2.8      
joblib       0.14.0   
langdetect   1.0.7    
nltk         3.4.4    
numpy        1.17.1   
pip          19.3.1   
requests     2.22.0   
scikit-learn 0.21.3   
scipy        1.3.2    
sent2vec     0.0.0    
setuptools   41.6.0   
six          1.13.0   
urllib3      1.25.7   
wheel        0.33.6

4 个答案:

答案 0 :(得分:2)

您会注意到,jupyter未在已安装的软件包中列出。这意味着您是在其他虚拟环境中运行它。正如我在回答您的问题的评论中提到的那样,您可以运行which jupyter来查找运行Jupyter Notebook应用程序的位置(假设您使用的是* NIX系统);在这种情况下,不会出现在第一个代码块中显示的python3.7虚拟环境中。

要解决此问题,只需运行pip3 install jupyter,然后重试运行jupyter notebook

或者,您可以将虚拟环境添加为内核,以便在从原始环境运行Jupyter时可以选择它。为此,您将运行(假设pip已连接到您的原始环境):

pip install ipykernel
ipython kernel install --user --name=<insert name of your venv>

然后,您应该能够在新笔记本上选择该venv作为内核。 ({Source有关Jupyter中venv激活的信息)。

答案 1 :(得分:1)

这表明您需要Numpy 1.17.1 (您拥有Numpy 1.16.0 )才能使用send2vec

要求 https://github.com/epfml/sent2vec/blob/master/requirements.txt

答案 2 :(得分:0)

运行此命令(使用envname您的环境名称):

jupyter kernelspec uninstall envname

ipython kernel install --user --name=envname

有时Jupyter不能正确更新与环境关联的内核。 因此,解决方案是将其卸载并重新安装。

我遇到了同样的问题,并已解决

答案 3 :(得分:0)

尝试使用以下命令直接在 Jupyter 中安装:

import sys
!{sys.executable} -m pip install your_package_name