在虚拟环境中安装Find Spark

时间:2020-06-22 16:32:15

标签: python apache-spark pyspark jupyter-notebook virtualenv

我正在使用pyenv创建一个虚拟环境。

我的pyenv软件包位于bio中的项目/.pyenv/versions/bio/lib/python3.7/site-packages

我使用以下方法安装了findspark

pip install findspark  #it was installed successfully.

我可以在packages目录中看到以下文件。

findspark-1.4.2.dist-info
findspark.py

但是,当我从pyenv目录启动Jupyter Notebook时,会出现错误消息

import findspark
findspark.init()

导入错误:没有名为findspark的模块

能不能帮我理解,尽管pip安装成功,为什么还会出现此错误?

我的which Jupyter返回以下路径(在终端和Jupyter笔记本中)

`/home/abcd/.pyenv/shims/jupyter

1 个答案:

答案 0 :(得分:1)

即使您在终端会话中激活了virtualenv,Jupyter笔记本也不会从virtualenv内部启动。

如果您import sys并打印出sys.executable,您将意识到python可执行文件的第一个值不是virtualenv的第一个值。

您需要将python中的virtualenv添加为内核。

$ virtualenv -p python3 pysparkvenv
$ source pysparkvenv/bin/activate
(pysparkvenv) $ pip install findspark jupiter  # etc.

(pysparkvenv) $ python -m ipykernel install --user

(pysparkvenv) $ which python
/home/disciple/Desktop/sample/pysparkvenv/bin/python

# make the necessary change to the python path
(pysparkvenv) $ sudo /home/disciple/Desktop/sample/pysparkvenv/bin/python -m ipykernel install --name pysparkvenv

这将创建一个新内核,该内核将在下拉列表中可用。

您可以检查内核是否以此方式创建

$ jupyter kernelspec list
Available kernels:
  python3        /home/disciple/.local/share/jupyter/kernels/python3
  pysparkvenv    /usr/local/share/jupyter/kernels/pysparkvenv

此后,您可以从任何地方启动jupyter notebook,并且将有新的内核可用。选择此选项,您将拥有在virtualenv内部安装的所有模块。

pysparkvenv kernel