通常情况下,我们使用Linux系统的服务器作为远程工具来运行python程序,完成相关的项目开发和科研任务。对于一般的工作者,使用Pycharm进行远程的服务器连接和配置就可以进行本地项目远程化运行。此外,我们日常工作中难免会使用到Jupyter工具来进行流程化的项目工作,尤其在进行机器学习和深度学习的时候。Jupyter工具能够便于我们分模块检查程序问题,进行高效的调优工作。
因此,在我们拥有Linux服务器的情况下,我们考虑在服务器端开启Jupyter Lab。通过远程网页进行访问,实现终端用户远程使用服务器下的Jupyer工具进行项目的开发。
Jupyter Lab 安装我们首先更新一下pip,使用pip来安装Jupyter lab。其中安装pip的源可以根据自己需要进行调整。
pip install -i https://pypi.mirrors.ustc.edu.cn/simple --upgrade pip
然后我们使用pip来更新安装Jupyter Lab。在实践中,我们发现如果直接安装后和进入Jupyter lab会出现提示:
- ’ExtensionManager’ object has no attribute ‘_extensions’
- ‘ERROR: Cannot uninstall ‘terminado’. It is a distutils installed project and thus wecannot accurately determine which files belong to it which would lead to only a partial uninstall’
为了避免上面这个问题,经过寻找我们需要按照如下顺序进行安装:
pip install nbclassic==0.2.8 pip install terminado --upgrade --ignore-installed terminado pip install --upgrade jupyterlabJupyter Lab 配置
更新安装完成之后,我们对Jupyter Lab进行远程访问的配置,才能实现远程登录访问。首先生成配置文件:
jupyter lab --generate-config
随后我们进入ipython:
In[1]:from jupyter_server.auth import passwd In [2]: passwd() Enter password: Verify password: Out[2]: '**************************************' In [3]:
目的是生成一个密码的哈希值,马上需要用,上面输入的密码可以自己任意取,将生成的这一段哈希值先复制了保存在。
然后用vim编辑器打开刚才生的配置文件:
vi .jupyter/jupyter_lab_config.py
打开后 按i进入编辑模式,直接在文件开头输入以下内容:
c.ServerApp.ip='*' # 表示所有ip皆可访问 c.ServerApp.password = '******************************' # 前面生成的密码哈希值 c.LabServerApp.open_browser = False # 禁止打开浏览器 c.ServerApp.port =8888 # 随便指定一个端口,默认为8888 c.ServerApp.allow_remote_access = True # 允许远程访问
需要注意的是:我们需要在配置文件中找到它自带的这一行(大概在500多行的位置)将其激活并设置为True。虽然这个和前面在文件开头添加的配置内容相同,但是仍然需要进行一下处理才可以正常运行。
使用:wq保存配置好的文件并退出。
随后我们对服务器的防火墙端口进行配置,如果这个端口没有被打开或者被防火墙允许访问,我们依然是无法实现远程访问的。我们输入如下命令来打开防火墙对应端口并保存相应配置:
firewall-cmd --permanent --zone=public --add-port=8888/tcp firewall-cmd --reloadJupyter Lab远程登录
在终端中输入jupyter lab启动jupyter lab 服务。看到如下显示则表明jupyter被正常运行。
我们在自己的终端上打开网页,输入服务器的IP地址 + 访问短口:IP:port。输入之前设置的密码之后就可以正常进入了,显示结果如下
到此,我们就完成了Jupyter Lab的服务器端配置,实现了本地终端登录的工作。
Reference:Linux服务器安装Anaconda 并配置远程jupyter lab
macos启动jupyter lab 错误:’ExtensionManager’ object has no attribute ‘_extensions’



