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

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

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

1. 购买服务器

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

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

阿里云的学生机购买链接:https://promotion.aliyun.com/...

点击购买即可。

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

接下来就是扫码支付了。

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

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

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

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

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

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

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

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

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

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

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

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

python -V

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

查看 python 可执行文件的路径

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

可以看到我这里的 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

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

2)下载 python 3.6.8 源码包

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

下载 python 3.6.8 包

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

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

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

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

bash: python: command not found...

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

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

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

这时就删除这个 python 软连接

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

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

激活配置

source ~/.bashrc

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

mkvirtualenv py3_test

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

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

指定 python 版本创建虚拟环境

mkvirtualenv py3 --python=python

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

3. 下载机器人相关库

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

4. 上传脚本到服务器

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

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

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

接下来就是运行脚本了。

5. 在服务器上运行脚本

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

python robot.py

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

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

nohup python robot.py

这时你可以查看进程

ps -ef | grep python

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

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

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

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

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

kill PID

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

ps -ef | grep python

箭头所指就是 PID 了。

最后

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

  • https://www.cnblogs.com/sandu...
  • https://blog.csdn.net/miner_z...
  • https://blog.csdn.net/eastmou...

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

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

  1. python怎么输入代码-教你如何将自己的脚本代码放到服务器上运行

    原标题:教你如何将自己的脚本代码放到服务器上运行 本文授权转自 | 日常学Python 上次弄了个机器人,反响挺不错的,我也挺满意的,因为这个我也初步了解了服务器这个东西,懂得了如何将自己的脚本代码放 ...

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

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

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

    作者 | sergiojune 转载自公众号日常学python(ID:daily_learn) 程序员转行学什么语言? https://edu.csdn.net/topic/ai30?utm_sour ...

  4. 实习工作经历:代码在本地明明可以跑通,怎么放到服务器上就不行了呢?

    到今天为止我已经实习整整一个月的时间了,这一个月的时间里学到了不少东西,也遇到了不少问题,今天就来讲讲我在实习过程中遇到的几个bug以及自己解决这些bug的经历. 问题一:代码在本地明明可以跑通,怎么 ...

  5. 手把手教-在自己的服务器上运行psychopy线上实验

    文章首发于我的个人博客92的博客-过渡站2站 填坑 感谢:光禹师兄 前言 如果您看过我以前写的东西,那么您可能知道,92对于在自己的服务器上运行psychopy有某种执念 Pavlovia?脑岛?那都 ...

  6. html服务器端运行python,如何通过点击网页在远程服务器上运行python脚本?

    我在远程服务器上有一个python程序.我需要创建一个web页面(html代码和服务器上python脚本所在的目录相同)有一个按钮,单击哪个python脚本应该运行.还有一件事是我们需要从本地机器上选 ...

  7. iis ajax访问html,为什么Ajax脚本不在IIS 7.5 Win 2008 R2服务器上运行?

    为什么Ajax脚本不在IIS 7.5 Win 2008 R2服务器上运行? 我有一个Web应用程序在我的开发服务器上的VS 2013上运行良好,但是一旦我在IIS 7.5 2008 R2服务器上发布了 ...

  8. 如何将项目代码放到github上

    一.具体内容 (一)首先注册github账号,登录,创建新仓库 ,点击new,创建新的repository: (二)点击new后,得到如下页面,填写仓库名,填写描述,点击Create reposito ...

  9. 前端代码放在服务器什么位置,前端代码在服务器上如何配置

    前端代码在服务器上如何配置 内容精选 换一换 代码迁移工具进行代码迁移时,需要调用Linux下的rpm.deb等命令才能完成扫描和迁移相关任务,这些命令和逻辑必须在后端Linux运行.IDE插件只支持 ...

最新文章

  1. python系统监控_python psutil系统监控详解
  2. java 中如何实现多进程_在Java中可以使用哪些方法来实现Java的多进程运行模式?...
  3. 目录爆破工具 -- dirsearch
  4. CPU上电后加载程序的流程 | 基于RK3399
  5. Beyond Compare 4
  6. Spread for Windows Forms高级主题(6)---数据绑定管理
  7. 美国确诊超46万!美国州长竟然抢起高龄程序员了,什么情况?
  8. 【Django 2021年最新版教程24】循环得到2个日期之间的所有日期
  9. python前端和后端_python是用于前端还是后端开发
  10. Oracle 解决中文乱码问题
  11. 算法学习(十九)——A3C
  12. 同花顺没签三方要赔钱才能拿回三方!!!!
  13. 【牛客练习赛13】 A B C D【康拓展开】 E【DP or 记忆化搜索】 F 【思维】
  14. Wifi-direct 相关记录
  15. 暴雪和黑客的战争四:暴雪的杀手锏-The Warden
  16. 拼多多这样来挑选关键词|百择电商
  17. 艾宾浩斯遗忘曲线PHP,艾宾浩斯遗忘曲线
  18. OCR文字识别 证件识别功能简析
  19. 集合运算的C语言算法
  20. 用c 语言实现数组的并集,C++实现两个数组的并集,交集

热门文章

  1. java key值_java-必须为此操作提供PartitionKey值
  2. flutter控制显示隐藏_leaflet中如何通过透明度控制layerGroup的显示隐藏
  3. html框模型,4-2css中的框模型简介
  4. 预测2019浙大计算机考研分数,浙江大学2019年考研分数线公布
  5. mysql 不排序_第08期:有关 MySQL 字符集的注意事项
  6. Clustering Coefficient
  7. pytorch 不同设备下保存和加载模型,需要指定设备
  8. AutoML Challenge 历史回顾
  9. tabbar怎么些_vue 做的tabBar组件
  10. gin redis 链接不上_内存优化,Redis是如何实现的!