如何在云服务器(宝塔)上运行python程序

如何在linux系统上运行python程序

大家好,我是W

流程介绍:本文主要内容是向大家介绍如何在linux系统中(云服务器)运行python程序。主要分为几部分:1.云服务器购买、登录、基本指令。2.python37下载、安装、配置。3.安装各种modules以及安装之前的准备。4.准备python程序。5.运行python程序

服务器购买、登录、基本指令

购买

一般比较大的厂都有服务器,比较出名的就有腾讯云、阿里云、百度云(???)、亚马逊云,还有一些不出名的服务器厂,比如我之前就看到一家香港的服务器租赁,配置相当的高,空间大,IO大,包年才一百多,哪怕是学生也能买得起,但是我就不建议去买这种。第一、稳定性不得保证。第二、万一哪天跑路了就不好了。第三、安全性得不到保证,不能确保自己的数据会不会丢。第四、可能会有额外的收费,比如重装系统。

本次我们就用阿里云了(主要是腾讯云买过了,现在没有学生优惠了=。=),正常在淘宝、百度搜索就可以购买了,很简单。进入系统之后点击控制台就可以看到自己的服务器。

登录

通过阿里账号扫码之后就可以登录自己的服务器控制台,接下来要点击需要登录的服务器的远程连接按钮,在网页上就可以弹出来一个类似终端的窗口,实际上这就是你的终端了。

在这里插入图片描述
接下来看到终端上有一行字 可以通过输入"sudo su root"切换至root账号,因为linux对文件的操作也分权限、用户,自己的文件自己才有完全的操作权限,其他用户是没有权限的,当然root用户拥有最高权限。目前为止我们就算成功登陆服务器了!

基本命令

服务器在购买之初有很多系统(Ubuntu、centos、BT等等)选择,其实基本操作都一样。
https://blog.csdn.net/qq_22172133/article/details/81209062

https://www.cnblogs.com/zhuzhiwei-2019/p/10951141.html

这两篇文可以帮大家熟悉linux操作,其实我在学linux操作的时候大部分都是实战出来的,敲着敲着就会想知道这句语法什么作用,慢慢就会了。

python37下载、安装、配置

我们登陆终端后所在的位置应该是/home/admin这个目录,接下来我们先看一下linux系统下我们的location

输入:cd / # 就可以进入根目录
输入:ls可以看到根目录下的所有文件夹

在这里插入图片描述
这就是系统的最根的根目录/,在这个目录下还有许多目录我们需要注意比如usr、home、bin等,接下来我们进入home看看,毕竟是我们的出生地。
在这里插入图片描述

可以看到只有一个www和admin文件夹,进入admin看看,admin里面是空的,我将这个位置命名为新手村(=。=)

python37安装(以下操作都在/home/admin执行)

1. sudo mkdir /usr/local/python3 # 创建安装目录
2. wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz # 可以在https://www.python.org/ftp/python/下任意选自己想装的版本,注意是tgz

这时候我们下载的文件存在了新手村里(/home/admin)

3. tar -xzvf Python-3.7.2.tgz # 解压缩包 # ls可以看到解压出Python-3.7.2文件夹
4. cd Python-3.7.2 # 进入文件夹里 ,可以ls适当看一下目录结构,跟在windwos下差不多
5. sudo ./configure --prefix=/usr/local/python3 # 注意在Python-3.7.2文件夹下执行 指定创建的目录
6. sudo make
7. sudo make install

接下来要配置linux自带的python2.x和我们下载的python3.7共存

8. sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3 #创建 python3 的软链接,这样就可以通过 python 命令使用 Python 2,python3 来使用 Python 3

如果一切顺利的话就可以通过python3 -V看到版本号了,这里给各位提醒一下,我当初以为mkdir /usr/local/python3之后应该在新建出来的目录下解压,结果后面怎么操作都报错,所以大家一定要记住在新手村解压。

安装各种modules以及安装之前的准备

安装前的准备

  1. 修改yum的配置文件,将其指向linux自带python2

     在任意位置输入:vi /usr/bin/yum # 这语句的意思是使用vim修改/usr/bin下的yum文件
     将第一行改为:#!/usr/bin/python2.7		
    
    
     关于vim的操作简单说一下:vi 文件名之后进入文件里,就好像打开了txt文件准备进行修改。
     上下左右移动光标,在没有乱按之前双击d键可以删除一整行。
     想要输入可以输入i键,然后就可以正常打字了。
     想要退出需要按下ESC键,然后输入(冒号: 即 shift+分好键),这时有几种选择: 
     	1.输入:w保存文件不退出 2.输入:q退出文件不做处理 3.输入:w!强制保存 4.同理输入:q!强制退出 5.输入:wq!强制退出保存
    
  2. 修改urlgrabber-ext-down文件,更改python版本

     vi /usr/libexec/urlgrabber-ext-down 
    
     进入文件,将第一行改为:#!/usr/bin/python2.7
    
  3. 安装zlib

     yum install zlib
    
  4. 进入解压的Python-3.7.2重新编译一遍

     # 逐一执行
     cd Python-3.7.2
     sudo ./configure --prefix=/usr/local/python3
     sudo make
     sudo make install
    
  5. 安装setuptools-39.1.0(直接在Python-3.7.2文件夹下执行)

     wget https://files.pythonhosted.org/packages/a6/5b/f399fcffb9128d642387133dc3aa9bb81f127b949cd4d9f63e5602ad1d71/setuptools-39.1.0.zip
     
     unzip setuptools-39.1.0.zip
    
     cd setuptools-39.1.0
    
     python setup.py install
    
  6. 安装pip

     curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
     
     python get-pip.py
    

安装自己想要的库(比如爬虫)

https://blog.csdn.net/Winnie749/article/details/80295105

之前参照这个文章装,但是发现全都装进了python2里,不知道是不是配置问题,所以我找到了另一种安装方法,绝对装进python3。如何鉴别,大家可以先按照上面这篇博客装库,然后在终端输入python进入linux的python2,若import自己的库没有报错,可以退出python,在终端输入pip list看看有没有刚刚自己装的库,若有则是装进python2了,同理对python3,二者为对立事件关系。

我的安装方法:python3 -m pip install requests
参考:https://blog.csdn.net/xyy1028/article/details/93660567

同理,按照上述方法验证是否装进python3里了。

但是,当我确定自己装入的模块在python3里之后,在运行自己的python文件时发现,下载的库是能用,但是自己写的包却不能用。

比如:我在自己的爬虫文件里写了spiders文件夹,里面装了几个py文件,需要相互引用。
在执行main文件时,却发生类似ImportError:no module name xxxx错误。

这时我们需要修改一下路径,把自己的模块导入进来:

vi ~/.bashrc # ~/是一个目录,.bashrc是一个文件 我们需要在文件末尾添加一行代码

添加export PYTHONPATH=/home/admin/我们的工程目录/需要导入的自定义模块[:/若有其他包也是在这个位置加:继续导入]:$PYTHONPATH

:wq!保存后在终端执行source ~/.bashrc使其立即生效 

准备python程序

若大家的python程序有需要用到本地路径的地方全都改成linux下的路径,然后可以通过各种方式将文件传到linux下。这里我用的是WinSCP,大家若是能用其他的也可以。具体的使用方法我贴一个链接

下载地址:https://winscp.net/eng/docs/lang:chs

操作方法:https://winscp.net/eng/docs/lang:chs#%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C

简单易学,具体方法不交了,记得用服务器公网地址链接。

运行python程序

假设大家都已经完成前面的所有步骤,装好所有库了,接下来就是要跑程序了。

相信大家要在服务器运行的程序都是需要长时间运行的

要长时间运行,在需要跑的文件目录下输入
nohup python3 -u xx.py > log.out 2>&1 &

意思是,使xx.py 文件在终端连接断开后依然运行,并且将控制台打印的信息全都输出到log.out文件(随意命名,.out文件)
-u是指逐行打印到log里
后面的2>&1 不知道,反正能跑就行了,刚刚还是查了一下,大家感兴趣的可以看https://blog.csdn.net/zhaominpro/article/details/82630528
& 表示在后台运行

若大家的文件不需要长时间后台运行

直接输入python3 xx.py就可以了
跟windwos下的cmd一样
发布了12 篇原创文章 · 获赞 0 · 访问量 613

猜你喜欢

转载自blog.csdn.net/Alian_W/article/details/104329652