这篇文章给大家分享的是有关用aws运行python的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
如何在AWS上搭建jupyter运行Python
1、先申请aws,然后运行EC2实例,有手把手的教程,我申请的是amazon linux实例https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-connect-to-instance-linux
2、按照文档,安装putty(连接远程服务器用),winscp(上传文件用),如何用密钥连接,文档中都有,这个很简单,不会出错。
3、安装anaconda,可以下载anaconda 的linux版本,然后bash 安装,下载地址https://www.anaconda.com/distribution,安装时按照提示一步步确定就可以。安装好后,为了能方便用 jupyter notebook 启动服务,可以配置profile。sudo vi /etc/profile,将”export PATH=/home/ec2-user/anaconda3/bin:$PATH“ 放到最后。
4、配置anaconda,先用jupyter notebook --generate-config,来生成notebook配置文件,然后sudo vim /home/ec2-user/.jupyter/jupyter_notebook_config.py,这里要改2个配置:
一是你服务器上notebook的启动目录,这些文件都放在这里,我是c.NotebookApp.notebook_dir='/home/ec2-user/yuanfang';
二是要让远程也能够访问notebook,所以要改为c.NotebookApp.allow_remote_access = True。改好配置后,重新启动jupyter,这里注意,要用nohup jupyter notebook来启动,这样你断掉putty连接,jupyter不会停止。
5、安装nginx。jupyter的默认端口是8888,我本来是想直接远程通过8888端口来访问,但配了好久aws的安全组,就是访问不了8888端口,没办法,只好用nginx做代理,暴露80端口。nginx安装很简单,sudo yum install nginx。然后sudo service nginx start 启动。浏览器打开你aws实例的公网地址,看到nginx的启动页面,就证明nginx安装好了,也能访问到。
6、配置nginx。还要通过80端口也能访问jupyter,所以要配置nginx。这里我是通过修改conf文件sudo vi /etc/nginx/nginx.conf,改掉这里:
location / { proxy_pass http://127.0.0.1:8888/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade"websocket"; proxy_set_header Connection "upgrade"; proxy_redirect off; }
7、重启nginx,访问notebook。然后重启nginx,sudo service nginx restart,在pc浏览器中输入网址就能访问notebook了,我的是http://ec2-18-219-124-76.us-east-2.compute.amazonaws.com
8、配置notebook密码。这里还有最后一步,就是配置notebook密码,因为是远程服务,会强制要求你必须设置密码。按照提示,输入token(可以看你服务器上notebook的运行日志,里面有token值),并设置密码,就可以了。
9、愉快的在notebook中写代码了。好了,设置完毕,你可以在浏览器(甚至是手机)上写python代码了。也可以让朋友们来玩,很适合一些想学python却没有编程和环境搭建基础的朋友。
感谢各位的阅读!关于用aws运行python的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。