编写目的
实录centos真实环境下安装Anaconda的全过程。默认情况下,安装运行后不支持外网访问(可能处于安全考虑),当需要外网访问的时候,需要按照如下步骤进行。
安装全过程
-
下载:在anaconda官网上自行下载,注意选择下载linux版本的,即一个.sh文件。
-
运行:运行下载的sh文件,我下载的是“Anaconda3-2019.10-Linux-x86_64.sh”,其他版本方法一样。
$ sh Anaconda3-2019.10-Linux-x86_64.sh
即可看到
接下来过程就是回车和输入yes即可。 -
安装完成。完成安装后可以看到在home目录下有个
anaconda3
目录,anaconda的使用都在这个目录下进行。
本地使用启动方法
说明:本地使用的意思就是,启动后,只能使用这个centos系统自带的浏览器打开。局域网内或者外网都不能访问。
启动方法很简单。
# 跳转到 anaconda3 目录
$ cd anaconda3/
# 启动notebook,并使用默认浏览器打开
$ bin/jupyter notebook
这个地方唯一需要注意的是,如果是root用户运行以上命令,请加上参数
--allow-root
外网访问
说明 如果需要在自己的云服务器上启动,或者在虚拟机上启动,但是和使用浏览器操作notebook的机器并不是同一台的时候,我们外网访问。
很多博客都主张使用内网穿透的方式进行,但是很显然这样很麻烦。这里介绍一个简单有效的使用方法。步骤如下:
- 生成配置文件
- 添加密码
- 修改配置文件
- 启动
生成配置文件
在anaconda3目录下执行以下命令,
$ bin/jupyter notebook --generate-config
可以看到输出内容如下:
/home/yan/.jupyter/jupyter_notebook_config.py
添加密码
为了安全使用,添加密码是非常有必要的。(尤其是在云服务器上安装)
在anaconda3目录下执行以下命令
$ bin/jupyter notebook password
接下来会提示输出密码,并且输入两次。
Enter password: ****
Verify password: ****
到时候远程访问时,则会提示输入密码。
修改配置文件
根据上面内容,可以配置文件路径为 /home/yan/.jupyter/jupyter_notebook_config.py
(根据实际情况更改),主要需要修改三个内容,ip,端口和是否允许远程访问。
$ vi ~/.jupyter/jupyter_notebook_config.py
找到以下内容,并根据需要自行更改
# 让外网访问 默认 localhost
c.NotebookApp.ip = '0.0.0.0'
# 端口 默认 8888
c.NotebookApp.port = 8888
# 允许远程 默认 False
c.NotebookApp.allow_remote_access = True
提醒 如果使用root用户启动的话,最好也设置一些
c.NotebookApp.allow_root = True
以免每次启动还需要加参数。
提醒 如果不希望每次启动需要输入参数 --no-browser的话,最好也设置一些c.NotebookApp.open_browser = False
。
启动
首先一定要记得关闭防火墙。
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
在anaconda3目录下执行以下命令:
$ bin/jupyter notebook --no-browser
大功告成!
效果展示
在自己浏览器上通过ip地址访问虚拟机(或者局域网内centos)的地址,即可看到提示登录内容如下:
登录后即可看到内容如下:
补充,如何设置项目地址
如上图所示,启动之后把整个anaconda的安装目录都暴露出去了。但是其实我们完全不需要关心这些文件或目录。
不妨在此目录下新建一个文件夹,project
。然后把这个目录设置为项目的根目录。
- 在anaconda目录下新建一个文件夹,起名为
project
- 编辑上面提到的配置文件,设置根目录。(即
/home/yan/.jupyter/jupyter_notebook_config.py
)# 去掉前面的注解,设置根目录为project,注意使用相对路径 c.ContentsManager.notebook_dir = 'project'
- 再次启动
jupyter
的时候,就可以发现当前目录为空,把所有项目,数据都记录在这里面会方便一些。
补充二,如果自带了python2
在centos8之前,都默认安装了python2,所以在默认情况下输入python --version
一般会提示2.7xxx。而且默认情况下是没有安装pip和conda的,这个带来的麻烦就是使用notebook的时候不能快速安装或者升级依赖,因为输入!pip install tensorflow
会提示pip不是内部指令。
安装方法也是非常简答,把/usr/bin/python
修改为/usr/bin/python.back
表示不直接使用以前的python2,然后再创建软链接,使用anaconda自带的python3.具体如下:
# 请确保是root用户
mv /usr/bin/python /usr/bin/python.back
ln -s /home/yan/anaconda/bin/python /usr/bin/python
# 同样创建pip和conda的软链接
ln -s /home/yan/anaconda/bin/pip /usr/bin/pip
ln -s /home/yan/anaconda/bin/conda /usr/bin/conda
注意与此同时,需要更改yum指令的依赖python2,输入指令vi /usr/bin/yum
然后把第一行的 /usr/bin/python
改成 /usr/bin/python2.7
即可。
同样地,也需要编辑/usr/libexec/urlgrabber-ext-down
把第一行改成/usr/bin/python2.7
接着使用浏览器打开notebook的时候就可以直接使用pip和conda命令了,比如!pip install tensorflow
等等(前面需要加英文感叹号)。
我自己搭建好的一直在使用的是 华为云 提供的学生机,http://ccyan.cn:8888.
总结
不需要像其他博客说的那样,需要内网穿透。
完成安装以后可以让代码在云服务器跑,代码没有问题的话,持续跑一天两天基本上都不会有什么问题。
Smileyan
2019年12月6日 15:53