Python 看不到 Jupyter Notebook 的包

eva*_*ria 4 python pip python-3.x jupyter-notebook

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

单元格 1:
!pip3 install sent2vec

Requirement already satisfied: sent2vec in 
venv/lib/python3.7/site-packages (0.0.0)
Run Code Online (Sandbox Code Playgroud)

单元格 2:
import sent2vec

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

ModuleNotFoundError: No module named 'sent2vec'
Run Code Online (Sandbox Code Playgroud)

这怎么会发生?如何解决这个问题?

> 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
Run Code Online (Sandbox Code Playgroud)

小智 8

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

import sys
!{sys.executable} -m pip install your_package_name
Run Code Online (Sandbox Code Playgroud)


PMe*_*nde 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>
Run Code Online (Sandbox Code Playgroud)

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