不用开着电脑,如何将脚本代码放到服务器上?

640?wx_fmt=jpeg

 

作者 | sergiojune

转载自公众号日常学python(ID:daily_learn)

 

程序员转行学什么语言?

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

上次弄了个机器人,反响挺不错的,我也挺满意的,因为这个我也初步了解了服务器这个东西,懂得了如何将自己的脚本代码放到服务器上运行了,妈妈再也不怕我每天都得开着电脑才能运行脚本了,不过说实话,这个服务器真贵,不过有阿里云学生机,想尝试了解下的可以去试试,非常建议去折腾下,可以学到的东西很多。

 

640?wx_fmt=png

 

当时为了将代码放到服务器上运行,也花了很多时间,所以避免还有不会的小白同学,记录下此过程,让他们少走点坑。

 

1. 购买服务器

 

如果你是学生的话,想折腾的可以去阿里云那里购买,因为有学生机优惠,只需要9.9一个月,但是只能购买一次,在下一次购买需要做任务才可以继续享用学生机优惠。如果你是土豪的话,可以直接忽略这个。

 

因为这次我只需要把机器人脚本运行就可以了,所以直接选择学生机的配置就够用了。

 

阿里云的学生机购买链接:

 

https://promotion.aliyun.com/ntms/act/campus2018.html?spm=5176.10695662.1244717.1.605c4804V5gfhs

 

640?wx_fmt=png

 

点击购买即可。

 

640?wx_fmt=png

 

这个密码是你登陆上服务器的密码,需要记住,登陆用户名就是 root

 

接下来就是扫码支付了。

 

购买了点击阿里云控制台,点击云服务器ECS,就可以看到你刚才购买的服务器了。

 

640?wx_fmt=png

 

再点击下面的云服务器,你就可以看到这个服务器的相关配置了

 

640?wx_fmt=png

 

连接服务器可以在这个页面的右边的远程连接进行连接,这个第一次点进去会有个远程连接密码,需要记住,因为每次在这里进行远程连接的时候都需要填入这个密码

 

640?wx_fmt=png

 

640?wx_fmt=png

 

连接成功就会显示一个黑色框,这里连接服务器虽然可以,但是不太方便,这里推荐大家一个在 window 的免费 ssh 连接工具 putty

 

2. 在服务器上配置 Python 环境

 

需要在服务器上运行 Python 脚本 ,就必须要在服务器上有 Python 的环境,在阿里云购买的学生机默认就装有 Python 的,不过版本是 2.7.5。这里我们重新安装 Python3,是这个服务器上可以多个版本共存。

 

先在 putty 上连接我们的服务器。

 

640?wx_fmt=png

 

上面的 ip 地址就是我们购买的服务器的共有ip地址,使用 ssh连接就行了。不过还得设置一个东西,不设置的话,如果超过一段时间不动终端的话,就会自动断开,又得重新连接

 

640?wx_fmt=png

 

这里设置成 60 秒就可以了,原理我现在不太记得了,如果有读者知道的话,可以在留言区说下。

 

640?wx_fmt=png

 

点击 open,然后填写用户名 root 和自己之前设置的密码即可登陆成功,如上图。

 

接下来就是开始安装我们的 Python3 环境了。

 

先查看下 centos 服务器的已安装的 Python 版本

 

  •  
python -V

 

640?wx_fmt=png

 

我这里是 3.6.8 版本,因为我重新配置了,如果你第一次使用,这个结果是 python 2.7.5

 

查看 python 可执行文件的路径

 

640?wx_fmt=png

 

可以看到所在的目录,进入这个 bin 目录,并查看 python 文件

 

640?wx_fmt=png

 

可以看到我这里的 python 指向了 python3 这个文件,但是你们第一次的会指向 python2.7 这个文件,接下来就是将 python 这个软连接指向 python3 就行了。如果怕弄坏的,想备份原来 python2 的文件可以执行 mv python2.7 python.bak 就可以将文件备份到当前目录了。

 

安装 python3.6.8 版本

1)先安装相关包

 

  •  
 

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

 

640?wx_fmt=png

 

需要需要确认时直接输入 y 即可

 

640?wx_fmt=png

 

2)下载 python 3.6.8 源码包

 

如果觉得下载网速有点慢的话,可以更换阿里云源,可以参考这个连接:https://blog.csdn.net/qq_37274323/article/details/81107958

 

下载 python 3.6.8 包

 

  •  
 

https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz

 

640?wx_fmt=png

 

解压 python 3.6.8 源码包

 

  •  
 

tar xf Python-3.6.8.tar.xz -C /usr/local/src/

 

这个是将 python 源码包解压到文件夹 /usr/local/src 内,这里你也可以自己指定解压目录,你自己记得解压位置即可。

 

安装 python3

 

  •  
 

./configure --prefix=/usr/local/python3

 

这里的地址需要指定为自己的 python 源码包解压地址。

 

编译

 

  •  
 

make && make install

 

 

这时候可以说安装 python3 成功了,我们可以使用这个命令查看

 

  •  
 

/usr/local/python3/bin/pip3 list

 

 

640?wx_fmt=png

 

更新 pip 版本

 

  •  
/usr/local/python3/bin/pip3 install --upgrade pip

 

也可以查看一下是否更新成功

 

  •  
 

/usr/local/python3/bin/pip3 list

 

3)建立软连接

现在就是需要将 python3 这个文件建立软连接,使 python 指向 python3 即可。

 

  •  
ln -s /usr/local/python3/bin/python3 /usr/bin/python

 

执行之后查看 python 版本

 

  •  
 

python -V

 

640?wx_fmt=png

 

成功之后就会看到 python 指向了 python 3.6.8 版本,如果出错了

 

  •  
 

bash: python: command not found...

 

这个是你建立软连出问题了,可能指定的 python3 安装路径不正确,这时候将 python 这个软连接删除重新创建即可。
 

你可以进入 。/usr/bin 目录,查看是否创建软连接成功

 

640?wx_fmt=png

 

若找到 python 这个指向为红色显示的,证明创建错误了,python3 的地址错误了。

 

640?wx_fmt=png

 

这时就删除这个 python 软连接

 

640?wx_fmt=png

再重新创建 python 软连接即可

 

  •  
 

ln -s /usr/local/python3/bin/python3 /usr/bin/python

 

这前面的地址就是 python3 的安装路径,就是有 python3 这个文件的目录。

 

4)修改 yum 配置

因为 yum 原来是使用 python2 的,改了 python3 之后可能会出错,所以需要重新配置。

 

修改 yum 文件

 

  •  
 

vi /usr/bin/yum

 

把文件头部的#!/usr/bin/python改成#!/usr/bin/python2.7保存,然后按esc,输入 :wq 退出即可

 

修改 urlgrabber-ext-down 文件

 

  •  
 

vi /usr/libexec/urlgrabber-ext-down

 

第一行改为#!/usr/bin/python2.7,然后按esc,输入 :wq 退出即可

 

640?wx_fmt=png

 

现在就完成了 python 环境的配置了。

 

3. 下载相关库

 

为了方便管理,我这里使用了虚拟环境,防止每个脚本运行时所需要的库进行冲突,如果你暂时没有想那么复杂,只是想运行一次脚本而已,也可以不必要使用虚拟环境,不过还是建议使用虚拟环境的,毕竟始终都需要用到的。

 

1)下载 virtualenv 库

这个是创建 虚拟环境使用的库。

 

  •  
 

pip3 install virtualenv

 

注意:这里使用的是 pip3,若是直接使用 pip 则对应的是 python2 版本的。

 

2)下载 virtualenvwrapper-win 库

这个库是为了方便管理虚拟环境使用的

 

  •  
pip3 install virtualenvwrapper-win

 

下载完了还需要配置环境变量

 

  •  
 vim ~/.bashrc

 

在末尾添加上这两句

 

  •  
  •  
 

export WORK_HOME=$HOME/.virtualenvssource /usr/local/python3/bin/virtualenvwrapper.sh

 

第一句是固定的,第二句为指定 virtualenvwrapper 安装的路径

 

640?wx_fmt=png

 

激活配置

 

  •  
source ~/.bashrc

 

640?wx_fmt=png

 

然后进入你想创建虚拟环境的路径,输入以下命令

 

  •  
mkvirtualenv py3_test

 

创建成功之后会自动进入该虚拟环境

 

640?wx_fmt=png

 

但是这里默认使用的是 python2 版本指定的虚拟环境,需要使用 python3 版本可以指定版本创建

 

指定 python 版本创建虚拟环境

 

  •  
 

mkvirtualenv py3 --python=python

 

上面使用 --python 参数来指定 python 版本,因为 python 这个文件是指向 python3 的,所以可以这样使用,当然你也可以填上你 python3 版本的位置,这时虚拟环境的 python 版本就是 3 了。

 

640?wx_fmt=png

 

3. 下载机器人相关库

 

640?wx_fmt=png

 

这里就是在虚拟环境中使用 pip3 安装 itchat 和 requests 库(用于爬虫获取早报)即可

 

4. 上传脚本到服务器

 

由于服务器上原本就带有 ftp 服务器的,所以我们只需要在本地安装个 fileZilla 客户端进行连接即可,自己去官网下载即可。

 

640?wx_fmt=png

 

这里填上自己的服务器 ip 地址和连接账号和密码 ,点击连接即可

 

640?wx_fmt=png

 

连接成功之后,左边就是我们服务器上面的文件了,右边就是本地文件,右击需要上传的文件选择上传即可。上传成功之后即可在服务器上看到相关文件。

 

640?wx_fmt=png

 

接下来就是运行脚本了。

 

5. 在服务器上运行脚本

 

可以直接像在本地一样运行脚本

 

  •  
 

python robot.py

 

这样就可以 运行成功了,但是我们在关闭连接之后,这个脚本就停止了,那岂不是还是需要开着电脑挂机?

 

别急,我们可以在后台运行脚本啊,这样即使关闭连接,也一样在运行。使用命令如下:

 

  •  
nohup python robot.py

 

这时你可以查看进程

 

  •  
 

ps -ef | grep python

 

640?wx_fmt=png

 

就会看到我们刚才 robot 代码已经运行起来了,这个就是在后台运行,关闭连接之后一样会运行,这下就放心了。

 

但是,如果发生错误的话,我们是无法知道哪里出错的,这时我们指定日志输出文件

 

  •  
 

nohup python -u robot.py > robot.log 2>&1 &

 

-u 就是指定实时的日志输出目录,而 & 符号是使程序在后台运行,一边运行还可以一边查看日志输出文件,这里的 robot.log 就是我们的日志输出文件

 

还有一个问题,我想停止机器人怎么办?可以使用这个命令

 

  •  
 

kill PID

 

这里 PID 为 linux 系统上的进程号,要想停止哪个后台程序就填上它对应的 PID 即可,查看 PID

 

  •  
ps -ef | grep python

 

640?wx_fmt=png

 

箭头所指就是 PID 了。

 

最后

 

由于我现在的知识水平有限,暂时只能说明这么多,这些都是我当初在第一次使用时所做的记录,如有错误,还请帮忙指出。同时还参考了几篇文章:

 

  • https://www.cnblogs.com/sanduzxcvbnm/p/5984352.html

  • https://blog.csdn.net/miner_zhu/article/details/81315974

  • https://blog.csdn.net/eastmount/article/details/79321822

  • 如何挑战百万年薪的人工智能!

    https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

 

(本文为 AI科技大本营转载文章,转载请联系原作者)

 

群招募

 

扫码添加小助手微信,回复:公司+研究方向(学校+研究方向),邀你加入技术交流群。技术群审核较严,敬请谅解。

640?wx_fmt=jpeg

推荐阅读:

                         640?wx_fmt=png

❤点击“阅读原文”,查看历史精彩文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值