如何让 Jupyter Notebook 在模块的正确位置查找?

如何让 Jupyter Notebook 在模块的正确位置查找?

使用运行 python2 内核的 Jupyter Notebook,我尝试导入emcee,但收到一条错误消息:

File "/home/me/.local/lib/python2.7/site-packages/emcee/ensemble.py", line 84
    parameter_names: Optional[Union[Dict[str, int], List[str]]] = None,
                   ^
SyntaxError: invalid syntax

显然是因为我正在使用 python2 内核。

然后我使用以下命令安装了 ipykernal:python3 -m pip install ipykernel

然后我使用 Python3 内核打开了一个 Jupyter Notebook。我再次尝试,但遇到了同样的问题。它仍然在 python2 路径中import emcee寻找模块。emcee

然后我pip3 install emcee打开了一个 Jupyter Notebook(python3 内核),但仍然遇到同样的问题。

我想我需要告诉 Jupyter Notebook 查找 emcee 的 python3 版本,但我不确定该怎么做。我刚刚尝试过:

export PYTHONPATH='/home/me/.local/lib/python3.6/site-packages/'

但同样,这并没有解决问题。我sys.path在 Jupyter Notebook 中检查了,似乎没有添加新的 python 路径。

有人能告诉我我做错了什么吗?

答案1

Jupyter Notebook 实际上并没有使用 python3 内核,尽管它说它使用了:

我的python3内核位于:/home/damejia/.local/share/jupyter/kernels/python3

kernel.json文件为:

{
 "argv": [
  "python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3",
 "language": "python"
}

但是“python”只指向我的python2。我将“python”更改为“python3”,一切正常。

相关内容