Python 看不到带有 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

您会注意到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作为新笔记本电脑的内核。(Jupyter中venv激活信息来源(。

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

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

运行此(使用envname作为环境名称(:

jupyter kernelspec uninstall envname

ipython kernel install --user --name=envname

有时Jupyter无法正确更新与environments相关的内核。因此,解决方案是卸载它,然后重新安装。

我也有同样的问题,这解决了

这表明您需要Numpy1.17.1(您有Numpy1.16.0(才能使用sent2vec

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

最新更新