为了成为一名优秀的炼丹师,最近配了台性能不错的主机,但苦于经常不在家,主机基本处于吃灰状态。因此,综合网上各种资料,在主机上安装jupyter并配置远程访问,能方便我随时随地远程使用。以下为配置教程,供大家参考。
话不多说,开始我的表演。

1.安装anaconda

anaconda官网下载,可以选择不同的版本。点击archive也可以下载历史版本,推荐下载历史版本,后面配置遇到的问题可能更少。

jupyter python环境 jupyter环境搭建_服务器


下载完成直接安装,和安装普通软件没什么区别。

安装完成后添加环境变量

jupyter python环境 jupyter环境搭建_python_02


以上三个环境变量都要添加。这里我把anaconda安装在C盘了,具体路径看你的anaconda安装路径。

2.配置本地jupyter服务

确认anaconda是否有预装jupyter,若没有,安装jupyter。
打开cmd,输入jupyter notebook命令,会在浏览器打开jupyter服务。
以下为可能遇到的问题:

  • 浏览器没有反应

如果浏览器没有反应,原因是jupyter config没有配置正确的浏览器或者路径。解决方法:

  1. 在cmd输入jupyter notebook --generate-config命令,则会在C:\Users\用户名.jupyter\jupyter_notebook_config.py生成配置文件
  2. 记事本打开该文件,搜索c.NotebookApp.browser = '',加上下面的代码
import webbrowser
# 注意浏览器的路径要写对,我这里使用了edge浏览器,chrome同理,将msedge替换为chrome,并配置相应的chrome路径。
webbrowser.register('msedge', None, webbrowser.GenericBrowser(u'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe'))
c.NotebookApp.browser = 'msedge'

jupyter python环境 jupyter环境搭建_服务器_03


3. 保存,退出,重新在cmd输入jupyter notebook --generate-config即可自动启动浏览器

`

  • 内核一直忙
    如果浏览器打开了jupyter但内核一直busy,输入pip list检查pyzmq包的版本,重装pyzmq pip install pyzmq=17.1.0(anaconda默认的pyzmq版本一般都在22.0.0以上),重装完成后重启jupyter即可解决问题。
  • 如何配置jupyter的kernel
    众所周知,conda是一个python环境管理器,我们可以通过conda create -n env_name python==3.7等创建不同的python环境,以及安装不同的library,因此我们需要在jupyter里自由切换不同的kernel。
  1. 安装ipykernel,且必须进入Base环境安装 conda install jupyter ipykernel
  2. 创建python环境:conda create -n py36 python==3.6
  3. 将conda环境写入jupyter的kernel中:`python -m ipykernel install --user --name py36 --display-name py36
    其中:–name 环境名称
    –display-name 在jupyter notebook看到的别名

    通过以上步骤,可以看到重启后的jupyter已经可以切换不同的kernel了,这里除了base环境python 3以外,还增加了py36和torch的kernel。

3.配置远程访问

  1. 生成jupyter密码密文,在python环境中运行以下代码,输入密码,最后生成密文。
from notebook.auth import passwd
passwd()
  1. 打开jupyter_notebook_config.py文件,在最后面增加下面代码
c.NotebookApp.ip='*' # 就是设置所有ip皆可访问
c.NotebookApp.password ='argon2:.......'  #刚才生成的密文
c.NotebookApp.open_browser = True 
c.NotebookApp.port =7777 #随便指定一个端口
  1. 保存退出,在本地浏览器或者同局域网下其他电脑浏览器输入ip:port即可访问,输入密码可以登陆(注意是你输入的密码,不是生成的密文)
    ip地址查询:命令行输入ipconfig,输出的ipv4即时IP地址,port是刚才指定的端口

    如果没有手头没有另外的电脑,也可以用手机浏览器测试
    相同网络下(局域网)测试结果(手机连接和配置jupyter电脑相同wifi),可以看到正常访问,输入密码后直接进入jupyter界面(恭喜你可以用手机编程了)

    不同网络下(公网)测试结果(手机关掉wifi),无法访问了(又不能手机搬砖了),说明此时不支持公网访问。

jupyter python环境 jupyter环境搭建_jupyter_04

jupyter python环境 jupyter环境搭建_pytorch_05

3.1 配置公网浏览器直接访问jupyter服务

经过以上一通操作,我们终于可以在其他电脑or手机上访问jupyter了,但是不要忘了,以上配置只能使我们在同一局域网下远程访问jupyter,如果不在同一局域网下,是无法访问到ip的(因为大部分用户都是没有公网IP的)。因此需要内网穿透技术。所谓内网穿透,让在内网的节点主动访问一个拥有公网IP地址的服务器,并由中间服务器搭桥进行公网访问。

  1. 下载内网穿透软件,推荐cpolar
  2. 配置端口映射,打开cpolar,注册登陆,创建隧道,免费用户选择随机域名(域名可能随机变化),土豪可以配置固定域名
  3. jupyter python环境 jupyter环境搭建_pytorch_06

  4. 创建完成后进入在线隧道列表,在公网输入映射地址即可实现远程访问jupyter
  5. jupyter python环境 jupyter环境搭建_jupyter_07