背景
jupyter notebook作为一个非常好用的工具,我们经常会在学习python以及深度学习的时候用到,但是经常我们面临的问题是远程服务器上的jupyter notebook,我们可能在本地没法使用,作者遇到的主要场景有:
- 服务器是云服务器,虽然运行jupyter notebook,显示
8888 端口已开,但是实际上云服务器没有开放8888 端口,因此我们在本地访问不了 - 直接在服务器运行
jupyter notebook 开启的ip是http://127.0.0.1 ,虽然我们可以指定ip地址,但是比较麻烦,并且还是可能遇到1的问题
那么我们应该怎么办呢?
解决方法
主要思想:可以使用ssh 命令做一个端口映射
我们先来了解一下如何将远程的端口映射到本地的命令,如下:
ssh -L 8080:localhost:8888 user@xxx.xxx.xxx
如果我们远程服务器jupyter notebook开放的端口是8888 ,我们通过上面的命令便可以将远程的8888 端口映射到本地的8080 端口,其中user 是远程服务器的用户名,xxx.xxx.xxx 是远程服务器的ip,下图是我在windows命令中的测试结果:
远程服务器中jupyter notebook 使用虚拟环境遇到的问题解决
当前比较流行的是使用conda 来进行管理python虚拟环境,作者也是如此使用的,但是在作者使用服务器虚拟环境中的jupyter notebook时候,发现运行jupyter notebook 命令后,默认开启的是服务器默认的python环境,而没有找到虚拟环境的位置,按照网友的图,正常显示应该是这样的:
但是我实际上是这样的:
网友说需要安装这个插件才可以,但是实际测试好像没什么用,参考方法在这里:
conda install nb_conda
于是作者在尝试了很多办法之后,使用了如下办法终于成功的解决了使用虚拟环境的jupyter notebook的问题,解决方法如下:
- 先进入虚拟环境
- 按照jupyter notebook
pip install jupyter
- 安装jupyterlab
pip install jupyterlab
- 找到虚拟环境python所在的位置
which python
比如作者通过上面的命令知道虚拟环境位置在:/home/ttd/.conda/envs/paddle/bin/ 目录下
- 启动jupyter notebook
/home/ttd/.conda/envs/paddle/bin/jupyter notebook
注意一定要使用虚拟环境下的jupyter notebook
最终大功告成!!
如果你觉得对你有用的话,欢迎点赞收藏
|