除了与 Docker 相关的问题,Jupyter 内核的设置在名为 kernel.json 的文件中配置,位于特定目录(每个内核一个)中,可以使用命令 jupyter kernelspec list 查看;例如,这是我的(Linux)机器中的情况:
$ jupyter kernelspec list
Available kernels:
python2 /usr/lib/python2.7/site-packages/ipykernel/resources
caffe /usr/local/share/jupyter/kernels/caffe
ir /usr/local/share/jupyter/kernels/ir
pyspark /usr/local/share/jupyter/kernels/pyspark
pyspark2 /usr/local/share/jupyter/kernels/pyspark2
tensorflow /usr/local/share/jupyter/kernels/tensorflow
再次作为示例,这里是我的 R 内核 (ir) 的 kernel.json 的内容
{
"argv": ["/usr/lib64/R/bin/R", "--slave", "-e", "IRkernel::main()", "--args", "{connection_file}"],
"display_name": "R 3.3.2",
"language": "R"
}
这是我的pyspark2 内核的相应文件:
{
"display_name": "PySpark (Spark 2.0)",
"language": "python",
"argv": [
"/opt/intel/intelpython27/bin/python2",
"-m",
"ipykernel",
"-f",
"{connection_file}"
],
"env": {
"SPARK_HOME": "/home/ctsats/spark-2.0.0-bin-hadoop2.6",
"PYTHONPATH": "/home/ctsats/spark-2.0.0-bin-hadoop2.6/python:/home/ctsats/spark-2.0.0-bin-hadoop2.6/python/lib/py4j-0.10.1-src.zip",
"PYTHONSTARTUP": "/home/ctsats/spark-2.0.0-bin-hadoop2.6/python/pyspark/shell.py",
"PYSPARK_PYTHON": "/opt/intel/intelpython27/bin/python2"
}
}
如您所见,在这两种情况下,argv 的第一个元素都是相应语言的可执行文件——在我的例子中,GNU R 用于我的ir 内核,而 Intel Python 2.7 用于我的pyspark2 内核。更改它,使其指向您的 GNU R 可执行文件,应该可以解决您的问题。