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

本文授权转自 | 日常学Python

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

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

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

1. 购买服务器

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

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

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

点击购买即可。

这个密码是你登陆上服务器的密码,需要记住,登陆用户名就是 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就可以将文件备份到当前目录了。

安装 python3.6.8 版本

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_37274323/article/details/81107958

下载 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/.virtualenvs

source /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/sanduzxcvbnm/p/5984352.html

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

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

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

转自 | 日常学Python返回搜狐,查看更多

责任编辑:

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

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

    上次弄了个机器人,反响挺不错的,我也挺满意的,因为这个我也初步了解了服务器这个东西,懂得了如何将自己的脚本代码放到服务器上运行了,妈妈再也不怕我每天都得开着电脑才能运行脚本了,不过说实话,这个服务器真 ...

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

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

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

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

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

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

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

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

  6. 50行代码教AI实现动作平衡 | 附完整代码

    作者 | Mike Shi 译者 | linstancy 责编 | Jane 出品 | AI科技大本营(id:rgznai100) [导读]本文将为大家展示如何通过 Numpy 库和 50行 Pyth ...

  7. 50 行代码教 AI 实现动作平衡 | 附完整代码

    [CSDN 编者按]本文将为大家展示如何通过 Numpy 库和 50行 Python 代码,使用标准的 OpenAI Gym平台创建智能体 (Agent),就教会机器处理推车杆问题 (Cart Pol ...

  8. python实现app自动签到器_Python实现自动签到脚本代码示例

    本篇文章小编给大家分享一下Python实现自动签到脚本代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 开发环境 : Windows10 + s ...

  9. python中用函数货币转换代码_python将人民币转换大写的脚本代码

    代码如下: def Num2MoneyFormat( change_number ): """ .转换数字为大写货币格式( format_word.__len__() – ...

最新文章

  1. redis的集群搭建
  2. java mysql 触发器 存储过程_mysql 触发器 存储过程 java调用
  3. 怎么修改谷歌浏览器文件提交按钮样式_使用css自定义input file浏览按钮样式
  4. HTML accesskey 属性
  5. 【Java从入门到天黑|03】JavaSE入门之流程控制
  6. 我的内容管理系统(CMS)寻找历程 -- Mambo出鞘,谁与争锋?
  7. C++ Templates 学习历程一
  8. java程序dna,蓝桥杯——DNA(Java题解)
  9. C盘空间不足怎么办?试试这款软件
  10. dubbo之failed to connect to server /xx.xx.xx.xx:20880 client-side timeout问题解决
  11. 获取计算机用户名称的方法,javascript读取用户名和计算机名
  12. JAVA初级项目——银行账户管理
  13. AK acm/oj.aabb
  14. 百度SiteApp构建网站APP
  15. 利用shell脚本解决区块链Fabric学习时下载Docker镜像失败和费时问题
  16. <Halcon> 区域划分算子partition_dynamic和partition_rectangle
  17. 请教求助,打开U盘显示,你当前无权访问该文件夹。
  18. PCB电路板Via、Pad孔的区分与安装孔、定位孔、金属孔、非金属孔的制作
  19. 推荐系统初识-协同过滤
  20. 【项目经验】拦截器拦截入参出参

热门文章

  1. spring 源码_spring源码系列(一)——spring循环引用
  2. 360安全浏览器兼容模式怎么设置_360浏览器极速模式怎么设置
  3. 开发日记-20190815 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 23
  4. bleve搜索引擎源码分析之索引——mapping和lucene一样,也有_all
  5. JD boto3 flask 上传 demo
  6. postman 并发测试
  7. AJAX(三)jQuery AJAX.post
  8. Python面向对象篇(2)-继承
  9. 构建高性能J2EE应用的五种核心策略
  10. cdn大全 jquery/jqueryUI/Dojo/MooTools/Prototype