我把朱庇特笔记本安装在化名jupyter下。如果我从控制台运行它(没有pyenv激活jupyter,笔记本使用相同的端口):
$ export PATH=/home/mortenb/.pyenv/versions/jupyter/bin:$PATH
$ /home/mortenb/.pyenv/versions/jupyter/bin/jupyter-notebook \
--config=/etc/jupyter/jupyter_notebook_config.py
!python --version
Python 3.6.5
!jupyter --paths
config:
/home/mortenb/.jupyter
/home/mortenb/.pyenv/versions/3.6.5/envs/jupyter/etc/jupyter
/usr/local/etc/jupyter
/etc/jupyter
data:
/home/mortenb/.local/share/jupyter
/home/mortenb/.pyenv/versions/3.6.5/envs/jupyter/share/jupyter
/usr/local/share/jupyter
/usr/share/jupyter
runtime:
/run/user/1000/jupyter正确的内核一切都很好。
但是,如果我用一个systemd脚本、相同的用户、同一个可执行文件来实现这一点:
# cat /lib/systemd/system/jupyter_notebook.service
[Unit]
Description=jupyter notebook as a service
[Service]
PATH=/home/mortenb/.pyenv/versions/jupyter/bin:$PATH
Type=simple
User=mortenb
Group=mortenb
PIDFile=/var/run/jupyter_notebook.pid
ExecStart=/home/mortenb/.pyenv/versions/jupyter/bin/jupyter-notebook --config=/etc/jupyter/jupyter_notebook_config.py
[Install]
WantedBy=multi-user.target我得到python 2.7.12 (系统python与Ubuntu16.04)
!python --version
Python 2.7.12
!jupyter --paths
config:
/home/mortenb/.jupyter
/usr/etc/jupyter
/usr/local/etc/jupyter
/etc/jupyter
data:
/home/mortenb/.local/share/jupyter
/usr/local/share/jupyter
/usr/share/jupyter
runtime:
/home/mortenb/.local/share/jupyter/runtime在这两个例子中,jupyter-记事本都有如下的示例:
#!/home/mortenb/.pyenv/versions/3.6.5/envs/jupyter/bin/python是否知道系统启动为何不同。谢谢
发布于 2018-05-09 11:53:39
PATH=/home/mortenb/.pyenv/versions/jupyter/bin:$PATH服务ExecStart=/home/mortenb/.pyenv/versions/jupyter/bin/jupyter-notebook --config=/etc/jupyter/jupyter_notebook_config.py _ <...> Type=simple User=mortenb Group=mortenb PIDFile=/var/run/jupyter_记事本.var
您的单元文件在语法上不正确。
没有PATH=指令(参考文献)。( (5))在系统单元文件中。您必须使用Environment=指令来指定环境变量。
而系统d似乎不支持扩张。
实际上,systemd确实支持Environment=和其他几个指令中的环境变量扩展。但是,您必须使用${FOO}作为单词的一部分;$FOO只被认为是它自己的一个单词。参考(5)
支持基本环境变量替换。在命令行上使用"${FOO}“作为单词的一部分,或作为它自己的单词,在这种情况下,它将被环境变量的值所取代,包括它包含的所有空格,从而产生一个参数。在命令行中使用"$FOO“作为单独的单词,在这种情况下,它将被在空格处拆分的环境变量的值所取代,从而导致零或多个参数。对于这种类型的扩展,引号是尊重时分裂成文字,然后删除。
发布于 2018-05-09 06:49:29
问题是路径,设置路径与在shell中运行时相同。而系统d似乎不支持扩张。
替换jupyter_notebook.service中的路径行解决了我的问题:
Environment='PATH=/home/mortenb/.pyenv/versions/jupyter/bin:/home/mortenb/.pyenv/plugins/pyenv-virtualenv/shims:/home/mortenb/.pyenv/shims:/home/mortenb/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'https://stackoverflow.com/questions/50242491
复制相似问题