教你如何将自己的脚本代码放到服务器上运行

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

教你如何将自己的脚本代码放到服务器上运行_第1张图片
image

如果你还没有了解我的机器人,可以看看为了你们,我用一天时间做了一个机器人!,也欢迎大家加我进群哈,大家一起交流学习!

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

1. 购买服务器

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

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

阿里云的学生机购买链接:https://promotion.aliyun.com/ntms/act/campus2018.html?spm=5176.10695662.1244717.1.605c4804V5gfhs

教你如何将自己的脚本代码放到服务器上运行_第2张图片
image

点击购买即可。

教你如何将自己的脚本代码放到服务器上运行_第3张图片
image

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

接下来就是扫码支付了。

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

教你如何将自己的脚本代码放到服务器上运行_第4张图片
image

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

教你如何将自己的脚本代码放到服务器上运行_第5张图片
image

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

教你如何将自己的脚本代码放到服务器上运行_第6张图片
image
教你如何将自己的脚本代码放到服务器上运行_第7张图片
image

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

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

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

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

教你如何将自己的脚本代码放到服务器上运行_第8张图片
image

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

教你如何将自己的脚本代码放到服务器上运行_第9张图片
image

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

教你如何将自己的脚本代码放到服务器上运行_第10张图片
image

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

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

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

python -V
image

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

查看 python 可执行文件的路径

image

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

教你如何将自己的脚本代码放到服务器上运行_第11张图片
image

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

1)先安装相关包

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
教你如何将自己的脚本代码放到服务器上运行_第12张图片
image

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

教你如何将自己的脚本代码放到服务器上运行_第13张图片
image

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
教你如何将自己的脚本代码放到服务器上运行_第14张图片
image

解压 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
image

更新 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
image

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

bash: python: command not found...

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

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

image

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

image

这时就删除这个 python 软连接

教你如何将自己的脚本代码放到服务器上运行_第15张图片
image

再重新创建 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 退出即可

image

现在就完成了 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 安装的路径

教你如何将自己的脚本代码放到服务器上运行_第16张图片
image

激活配置

source ~/.bashrc
教你如何将自己的脚本代码放到服务器上运行_第17张图片
image

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

mkvirtualenv py3_test

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

教你如何将自己的脚本代码放到服务器上运行_第18张图片
image

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

指定 python 版本创建虚拟环境

mkvirtualenv py3 --python=python

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

教你如何将自己的脚本代码放到服务器上运行_第19张图片
image

3. 下载机器人相关库

教你如何将自己的脚本代码放到服务器上运行_第20张图片
image

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

4. 上传脚本到服务器

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

教你如何将自己的脚本代码放到服务器上运行_第21张图片
image

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

教你如何将自己的脚本代码放到服务器上运行_第22张图片
image

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

image

接下来就是运行脚本了。

5. 在服务器上运行脚本

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

python robot.py

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

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

nohup python robot.py

这时你可以查看进程

ps -ef | grep python
教你如何将自己的脚本代码放到服务器上运行_第23张图片
image

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

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

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

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

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

kill PID

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

ps -ef | grep python
教你如何将自己的脚本代码放到服务器上运行_第24张图片
image

箭头所指就是 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

最后码字不易,如果对你有用的话,那就拍拍双手点个「好看」吧,或者分享给你的朋友一起学习!

教你如何将自己的脚本代码放到服务器上运行_第25张图片
image

你可能感兴趣的:(教你如何将自己的脚本代码放到服务器上运行)