我喜欢在一本木星笔记本电脑上工作,它是通过我的笔记本电脑远程连接到电脑上的。我想自动化的过程,连接到个人电脑通过ssh,初始化一个木星笔记本电脑,然后打开浏览器在我的笔记本电脑访问该笔记本。目前,我所采取的步骤如下:
jupyter notebook --no-browser --port=8889初始化一个木星笔记本ssh -N -L localhost:8887:localhost:8889 username@PC_IP_address将远程端口8889绑定到本地端口8887。个人电脑和笔记本电脑都在同一个网络上。我在本地机器上通过在Iterm3中创建一个执行脚本的配置文件来自动化2。我想让整个过程自动化,这样我就可以用一个别名在本地机器上启动一个远程笔记本。非常感谢。
发布于 2018-01-31 07:37:44
如果我是你,我会用一个函数。把这个放进你的.bashrc
jupy(){
ssh username@PC_IP_address jupyter notebook --no-browser --port=8889
ssh -N -L localhost:8887:localhost:8889 username@PC_IP_address
firefox https://localhost:8887
}发布于 2018-02-04 19:11:45
经过很大的努力,这里有一个对我有用的讨厌的解决方案。
jupykaggle(){
# arguments: projectfolder environmentname
competitionfolder=$1
envname=$2
ssh USER@IPADDRESS "cd Dropbox/data_science/kaggle/${competitionfolder};
source /home/USER/anaconda2/bin/activate ${envname};
/home/USER/anaconda2/bin/conda env list;
kill \`lsof -t -i:8889\`;
/home/USER/anaconda2/envs/${envname}/bin/jupyter notebook --no-browser --port=8889; exit"
# after notebook is initialized in remote host, Control+c to exit this ssh session
# and enter the second one to bind the remote port 8889 to local port 8887
echo "Bind remote port 8889 to local port 8887"
ssh -N -L localhost:8887:localhost:8889 USER@IPADDRESS
}
alias jupybrowser='open -a /Applications/Google\ Chrome.app http://localhost:8887'我执行
jupykaggle projectfolder environmentname要将cd放入项目目录,激活虚拟环境,关闭在我需要使用的端口中运行的进程,并使用该端口初始化一个jupyter笔记本(使用虚拟环境中的安装)。然后退出这个ssh会话并输入另一个ssh会话,在其中我将远程端口8889绑定到本地端口8887。最后一个别名只是打开本地主机8887中的Chrome浏览器来打开笔记本。
我仍然需要复制并粘贴远程笔记本上的令牌,但没关系。这仍然比我以前的工作流要少得多。
欢迎提出改进建议。
https://stackoverflow.com/questions/48534496
复制相似问题