我在虚拟环境中使用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
答案 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