python项目部署到linux_python项目打包部署到linux系统 - CSDN
精华内容
参与话题
  • Python写了个脚本,需要部署到Linux环境的服务器上,由于服务器linux系统(centos,redhat等)自带的是python2,现在的python萌新都是从python3开始学习,所以需要给服务器配置一个python3环境,一番摸索过后,踩.....

    Python项目部署
    同步更新在个人网站:http://www.wangpengcufe.com/machinelearning/python-python2/

    一、案例背景

    用Python写了个脚本,需要部署到Linux环境的服务器上,由于服务器linux系统(centos,redhat等)自带的是python2,现在的python萌新都是从python3开始学习,所以需要给服务器配置一个python3环境,一番摸索过后,踩过一些坑,也总结了一下经验,故留此文。

    二、主要应用技术

    2.1、linux 命令

    linux命令

    **三、实施步骤 **

    3.1、安装python3

    开始安装之前先看一下机器的环境,主要看一下操作系他的环境和python版本。
    查看环境
    操作系统:

    [root@reportweb]#  cat /etc/redhat-release
    CentOS release 6.5 (Final)
    

    查看python版本:

    [root@reportweb]# python -V
    Python 2.6.6
    
    
    [root@reportweb]# python3 -V
    -bash: python3: command not found
    

    可以看到操作系统是CentOS 6.5 ,python此时只有一个python2,没有python 3 。

    下面开始进入正式安装:
    第1步:下载python安装包,准备编译环境:

    [root@reportweb]# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
    

    第2步:下载python源码

    [root@reportweb src]# wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
    

    第3步:解压

    [root@reportweb src]# tar -zxvf Python-3.6.6.tgz
    

    第4步:安装,编译

    [root@reportweb src]# cd Python-3.6.2
    [root@reportweb Python-3.6.2] # mkdir /usr/local/python3.6
    [root@reportweb Python-3.6.2] # ./configure --prefix=/usr/local/python3.6
    [root@reportweb Python-3.6.2] # make
    [root@reportweb Python-3.6.2] # make install
    

    第5步:建立软链

    [root@reportweb Python-3.6.2] # ln -s /usr/local/python3.6/bin/python3.6  /usr/bin/python3
    

    第6步:查询python版本

    [root@reportweb]# python3 -V
    Python 3.6.6
    
    [root@reportweb]# python -V
    Python 2.6.6
    

    至此,python3安装完毕。

    3.2、安装pip3

    下面开始安装pip3的步骤。
    第1步:安装setuptools

    [root@reportweb src]# wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
    

    第2步:解压

    [root@reportweb src]# tar -zxvf setuptools-19.6.tar.gz
    

    第3步:编译,安装

    [root@reportweb src] # cd setuptools-19.6/
    [root@reportweb setuptools-19.6] # python3 setup.py build
    [root@reportweb setuptools-19.6] # python3 setup.py install
    

    第4步:建立软链

    [root@reportweb setuptools-19.6] #  ln -s /usr/local/python3.6/bin/pip3 /usr/bin/pip3
    

    第5步:查看pip3版本

    [root@reportweb] # pip3 -V
    pip 8.0.2 from /usr/local/python3.6/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg (python 3.6)
    

    第6步:更新

    [root@reportweb] # pip3 install --upgrade pip
    Collecting pip
      Downloading https://files.pythonhosted.org/packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl (1.4MB)
        100% |████████████████████████████████| 1.4MB 172kB/s 
    Installing collected packages: pip
      Found existing installation: pip 8.0.2
        Uninstalling pip-8.0.2:
          Successfully uninstalled pip-8.0.2
    Successfully installed pip-19.3.1
    [root@reportweb]# pip3 -V
    pip 19.3.1 from /usr/local/python3.6/lib/python3.6/site-packages/pip (python 3.6)
    

    至此,pip3安装完毕。

    3.3、启动服务

    启动服务分为前台启动和后台启动。

    前台启动,就是应用直接由窗口运行,能在窗口直接打印出日志信息,如果手动 ctrl + C 打断时,应用停止。当使用前台启动时,如果我们退出终端,服务就会停止。
    后台启动,就是用nohup等命令,执行应用,在窗口关闭后,或者 执行其他命令时,该应用仍然可以再后台运行。

    使用前台启动python项目:

    [root@reportweb]# python3 test.py
    2020-01-02 16:00:47 读取原日志信息:00:00:01.560 [http-nio-8605-exec-5] [DEBUG] Bound request context to thread: org.apache.catalina.connector.RequestFacade@2dc071e6 org.springframework.boot.web.filter.OrderedRequestContextFilter [RID:] [TID:] [MID:]
    2020-01-02 16:00:47 转换格式前信息:00:00:01.560 [http-nio-8605-exec-5] [DEBUG] Bound request context to thread: org.apache.catalina.connector.RequestFacade@2dc071e6 org.springframework.boot.web.filter.OrderedRequestContextFilter [RID:] [TID:] [MID:]
    ^CTraceback (most recent call last):
      File "test.py", line 174, in <module>
        read_rawlog()
      File "test.py", line 79, in read_rawlog
        line_json = log_data_to_json(line_temp)
      File "test.py", line 120, in log_data_to_json
        logger = re.findall(logger_rule, line)
      File "/usr/python3/lib/python3.6/re.py", line 222, in findall
        return _compile(pattern, flags).findall(string)
    KeyboardInterrupt
    [root@reportweb data]# 
    

    前台会输出正常的日志信息,直到你按下 ctrl + c 打断它,就会报KeyboardInterrupt。
    下面演示后台启动python文件:

    [root@reportweb data]# nohup python3 test.py &
    

    简单介绍一下nohup 命令

    用途:不挂断地运行命令。

    语法:nohup Command [ Arg … ] [ & ]

    描述:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。nohup 执行 默认会自动生成一个 nohup.out 记录文件。

    3.4、停止服务

    前台启动的服务,直接 ctrl + c 停止服务,或者退出终端,服务就会停止。

    后台启动的服务,用命令查看pid,然后 kill -9 pid 杀死任务。

    [root@reportweb]# ps -ef|grep python
    root      9233  2598 95 16:22 pts/0    00:00:16 python3 test.py
    root      9244  2598  0 16:22 pts/0    00:00:00 grep python
    [root@reportweb]# kill -9 9233
    [root@reportweb]# ps -ef|grep python
    [root@reportweb]# ps -ef|grep python
    root      9257  2598  0 16:23 pts/0    00:00:00 grep python
    [1]+  已杀死               nohup python3 test.py
    

    3.5、查看python执行的日志

    查看前10行命令:
    [root@reportweb]# head -n 10 nohup.out
    
    查看后10行命令:
    [root@reportweb]# tail -n 10 nohup.out
    
    显示文件 nohup.log 的内容,从第 20 行至文件末尾:
    [root@reportweb]# tail +20 nohup.out
    
    要跟踪名为 nohup.log 的文件的增长情况,请输入以下命令:
    [root@reportweb]# tail -f nohup.out
    

    tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

    命令格式:
    tail [参数] [文件]
    参数:

    -f 循环读取
    -q 不显示处理信息
    -v 显示详细的处理信息
    -c<数目> 显示的字节数
    -n<行数> 显示文件的尾部 n 行内容
    –pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
    -q, --quiet, --silent 从不输出给出文件名的首部
    -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
    立个flag:五一假学数据分析,争取年底升职加薪!有一起的吗?求组队
    立个flag:学数据分析,争取年底升职加薪!有一起的吗?求组队

    展开全文
  •    当Django web项目在本地开发完毕后,这仅能自己浏览,需要将代码放服务器上,这样用户才能访问,下文将详细介绍Django项目如何部署到linux服务器。 1.服务器环境介绍 操作系统:CentOS7 Python版本: 2.7.5 ...

       当用python 完成Django web项目在本地开发后,这仅能自己浏览,需要将代码放到服务器上,这样用户才能访问,下文将详细介绍Django项目如何部署到linux服务器。

    1.服务器环境介绍

    • 操作系统:CentOS7
    • Python版本: 2.7.5
    • Nginx主配置文件位置:/etc/nginx/nginx.conf

    2.安装基础开发包

    Centos 下安装步骤如下:

    • yum groupinstall "Development tools" -y
    • yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel -y

    3.安装Python包管理工具

    easy_install包链接: https://pypi.python.org/pypi/distribute

    安装步骤:

     cd ~
    yum install wget -y
    wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz
    ls
    tar xf distribute-0.6.49.tar.gz
    cd distribute-0.6.49
    python setup.py install
    

    CentOS7:python2.7 setup.py install
    CentOS6:python2.7 setup.py install
    测试是否安装成功:easy_install --version

    4.安装 uwsgi

    sudo yum install python-devel -y

    1、安装wget,gcc-c++ gcc*:

    yum install -y wget gcc-c++ epel-release -y

    2、安装pip

    yum install python-pip -y

    3、升级pip

    pip install --upgrade pip

    4、Uwsgi安装

    pip install uwsgi

    Successfully installed uwsgi-2.0.17.1

    5、查看 uwsgi 版本

    uwsgi --version

    CentOS 7.0使用的是firewall作为防火墙,默认防火墙是打开的
    查看防火墙状态:
    firewall-cmd --state

    停止firewall:
    systemctl stop firewalld.service

    禁止firewall开机启动:
    systemctl disable firewalld.service

    uwsgi:https://pypi.python.org/pypi/uWSGI

    uwsgi 参数详解:
    http://uwsgi-docs.readthedocs.org/en/latest/Options.html

    测试 uwsgi 是否正常:

    新建 test.py 文件,内容如下:

    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return "Hello World"
    

    然后在终端运行:
    uwsgi --http :8001 --wsgi-file test.py

    在浏览器内输入:
    http://服务器IP地址:8001

    查看是否有"Hello World"输出,若没有输出,请检查你的安装过程。
    在这里插入图片描述

    5.Django 安装

    Django 版本对应的Python 版本:

    Django 版本 Python 版本
    1.8 2.7, 3.2 , 3.3, 3.4, 3.5
    1.9, 1.10 2.7, 3.4, 3.5
    1.11 2.7, 3.4, 3.5, 3.6
    2.0 3.5+

    1、Django安装
    pip install django==1.8

    2、Python版本查看:

    方式一:pip list
    方式二:python
          import django
          print(django.get_version())
    

    3、测试django:

    cd ~
    django-admin.py startproject mysite
    cd mysite
    

    进入项目文件夹
    /data/wwwroot/mysite
    ,添加static和templates,分别用于存放静态文件和模板文件。

    django-admin.py startapp blog
    允许所有主机访问
    增加应用

    python manage.py runserver 0.0.0.0:8002
    (注意0.0.0.0这个IP地址)

    在浏览器内输入:http://127.0.0.1:8002,检查django是否运行正常。

    6.安装Nginx

    yum install nginx -y

    Nginx主配置文件:
    /etc/nginx/nginx.conf

    看服务器上安装的nginx版本号,主要是通过ngix的-v或-V选项,查看方法如下图所示:
    在这里插入图片描述
    -v 显示 nginx 的版本。
    -V 显示 nginx 的版本,编译器版本和配置参数。
    有时想知道nigix是否在正常运行,需要用linux命令查看nginx运行情况。执行命令:

    ps -A | grep nginx

    如果返回结果的话,说明有nginx在运行,服务已经启动。

    nginx启动、停止、无间断服务重启:

    service nginx start
    
    service nginx stop
    
    service nginx reload
    

    在浏览器中输入IP地址:
    在这里插入图片描述
    出现如下界面则nginx安装成功!
    在这里插入图片描述

    7.uwsgi 配置

    Django正常运行之后我们就开始配置一下uwsgi。

    我们网站项目路径是 /data/wwwroot/mysite/,在项目根目录下创建
    mysite.xml文件,输入如下内容:

    <uwsgi>
       <socket>127.0.0.1:8997</socket><!-- 内部端口,自定义 -->
       <chdir>/data/wwwroot/mysite/</chdir><!-- 项目路径 -->
       <module>mysite.wsgi</module>
       <processes>4</processes> <!-- 进程数 -->
       <daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
    </uwsgi>
    

    并保存
    配置文件里的mysite这是我们的项目名。

    8.配置nginx.conf文件

    首先切换到nginx的配置文件所在路径:
    cd /etc/nginx
    备份一下nginx.conf文件,以防意外,
    cp nginx.conf nginx.conf.bak
    然后打开nginx.conf,把原来的内容删除,
    rm -rf nginx.conf
    直接加入以下内容:(nginx.conf)

    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        server {
            listen       80;
            server_name  www.django.cn;
            charset utf-8;
            location / {
               include uwsgi_params;
               uwsgi_pass 127.0.0.1:8997;
               uwsgi_param UWSGI_SCRIPT mysite.wsgi;
               uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite; #项目路径
    
            }
            location /static/ {
            alias /data/wwwroot/mysite/static/; #静态资源路径
            }
        }
    }
    

    注意该配置文件中的路径要和mysite.xml项目路径对应上。

    执行以下命令先检查配置文件是否有错
    nginx -t,没有错就执行以下命令:nginx
    终端没有任何提示就证明nginx启动成功。可以使用你的服务器地址查看,成功之后就会看到一个nginx欢迎页面。

    9.访问项目的页面

    进入网站项目目录:
    cd /data/wwwroot/mysite/
    执行下面命令:
    uwsgi -x mysite.xml

    以上步骤都没有出错的话,执行以下命令重启nginx 。
    nginx -s reload
    然后在浏览器里访问你的项目地址!

    展开全文
  • python文件打包无网linux环境中首先你需要有一个和要部署的环境相同的机器,但是可以上网,方便下载第三方库我想部署到不能联网centos上那我先找一个可以联网的centos进行如下操作1、安装pip,centos默认不开启...

    首先你需要有一个和要部署的环境相同的机器,但是可以上网,方便下载第三方库

    我想部署到不能联网centos上那我先找一个可以联网的centos进行如下操作

    1、安装pip,centos默认不开启pip

    1.1 跟新apt-get
    1.2使用apt-get安装pip3

    apt-get update
    sudo apt-get install python3-pip
    

    2、使用pip安装freeze

    pip3 install freeze
    

    3、使用freeze获取python项目的依赖

    pip freeze>requirements.txt
    

    4、使用pip下载依赖包

    将依赖文件下载到packages文件夹下

    pip3 download -d packages/ -r requirements.txt
    

    5、在无网环境下安装第三方库

    pip install --no-index --find-links=packages/ -r requirements.txt
    

    搞定!

    展开全文
  • Python项目打包发布Linux线上

    千次阅读 2020-04-18 17:04:28
    近期写一个Python系统硬件监控,准备发布到Linux上。 下面一起看看怎么把项目发布到Linux上吧。 环境要求 Python版本:3.7 Windows运行项目 Centos7运行项目 因为centos7的python环境是2.75的。 ...

    近期写一个Python系统硬件监控,准备发布到Linux上。

    下面一起看看怎么把项目发布到Linux上吧。

    环境要求

    Python版本:3.7

     

    Windows运行项目

     

    Centos7运行项目

    因为centos7的python环境是2.75的。

    所以我们首先把Python环境换成3.7的才行。

    Centos7升级Python3.7.3版本

    上面是教程。

    (1)打包Python项目的依赖(也就是本地安装的项目依赖)

    pip3 freeze > requirements.txt
    

    (2)压缩Python项目和上传到服务器,解压

    zip包的解压命令:unzip 包名

    (3)cd到项目里,安装依赖

     pip3 install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com -r requirements.txt

     

    (4)运行项目启动文件

    python3 manage.py 
    

    项目已经运行成功,还有最简便的方法就是运行在docker容器里,更加方便,后续会更新

     

    展开全文
  • 部署python项目到linux服务器 原文链接:https://www.lanshiqin.com/d8d0505b/ 发表于 2018-08-12 | 更新于 2019-03-10 | 分类于 随笔 | 阅读次数: 4782 最近用Python写了个外挂,需要部署到Linux环境的服务器上...
  • linux环境下python部署

    千次阅读 2018-05-30 16:45:07
    linux系统环境自带python2.6,但有时我们项目使用的版本可能是3.x以上等等,此时我们需要在linux中再安装项目所需的python版本,此时就涉及多版本共存问题了,很多同学在安装多个版本Python时会遇到各种问题,本篇...
  • 网上有很多介绍在pycharm中怎么使用virtualenv ,但是后续在linux部署并不是很详细,以下为一个python项目本地调试,服务器部署的操作记录: 回顾一下:最简单粗暴部署方式: 本地通过idea开发后,生成...
  • python程序以linux服务部署

    千次阅读 2013-10-29 17:43:10
    今天尝试将自己的python程序以服务的形式部署到linux下 主要步骤如下: 1.code: __author__ = 'xxx' import os import datetime import time def run():  fp = open(os.path.dirname(__file__)...
  • 老师说:学Python一定要掌握Linux

    万次阅读 2019-03-11 16:42:05
    问这样的问题的朋友,可能还没有真正入行Python开发或者没有真正参与公司的一些项目部署,上线过程,对于上面问题,首选答案是肯定的,Python开发可以在Windows下开发,但是Linux学习仍然是必须的。 更多...
  • linux创建Django项目部署

    万次阅读 2018-06-06 14:56:35
    不过也解决了,参考:https://www.cnblogs.com/tssc/p/7762998.html近几天,突然想玩玩python,就弄了个虚拟机,打算先大致搭个环境,部署一个简单的项目。如果你没有服务器或linux系统的电脑,虚拟机就是首选了。...
  • Linux系统部署Python项目

    千次阅读 2019-01-06 21:20:33
    一、LNM+Python Djiango +uwsgi +redis 部署Python项目 (一)导入项目以及项目文件修改 上传压缩文件以及数据库/opt (注意要把数据库建成sql文件上传) 然后解压上传项目文件 进入核心目录(两次cd mybbs) 注意:...
  • 总结python+flask在linux部署的五大方法 1. linux sh & nohup后台运行python脚本 2. 使用gunicorn 部署flask服务 (个人项目推荐使用这个) 3. 使用screen命令部署 4. 使用flask + nginx + uwsgi (不建议,因Flask ...
  • linux下gunicorn+flask项目部署

    万次阅读 2017-02-17 10:44:32
    在接触到部署之前,我也和大多数人一样,觉得部署是一件很难的事情,其实部署无非就是使用linux命令来完成我们之前在本机windows系统的工作。主要是运行环境的搭建和将本地数据(数据库、代码)拷贝至云服务器。接...
  • 一个Python项目(带前端),部署到Docker的完整过程

    万次阅读 多人点赞 2019-10-30 14:02:20
    前提: docker已经安装好,docker的...序言:介绍一下需要运行的Python项目的结构: 平时在PyCharm里面运行该工程,只要直接运行server.py文件即可 现在希望将该工程,部署到docker里面,使用容器启动: ...
  • 部署flask项目到linux服务器

    万次阅读 2018-03-22 14:02:29
    在之前的文章跟,我们介绍过centos中搭建nginx+uwsgi+flask的运行环境,本节我们介绍如何把我们的flask项目部署到环境中。1. 上传flask项目下载winscp工具https://winscp.net/eng/download.php安装过程比较简单,...
  • 由于python版本比较多,python2与python3兼容又不好,导致很多扩展库版本也很多,安装扩展库就容易碰到问题,有些直接yum就可以安装,有些需要用pip安装,有些...先把本地python项目上传服务器,可以用rz工具,也可
  • 1、首先,在根目录底下建一个目录,存放python3.6.3版本,linux自带的为python2版本,命令如下: mkdir python3.6.3 cd python3.6.3 2、接着,使用下面的命令下载Python-3.6.3.tar.xz的安装包,对应版...
  • Linux部署Django项目

    千次阅读 2019-04-15 10:48:51
    由于Linux系统默认自带的是2.X环境,所以我们需要去安装3.X环境的python。 安装python3.X环境 1、使用下面的命令下载Python-3.6.3.tar.xz的安装包,对应版本可以去https://www.python.org/ftp/python/对应起来: ...
  • pythonanywhere 部署 Python web项目

    千次阅读 2019-03-29 16:55:10
    一,上传代码包 打开首先 Files选项对话 .zip文件上传 现在文件已经上传,我们...接下来用以下代码来解压缩(建议先要对linux基本操作有个了解) # 解压缩 xxx.zip $ unzip xxx.zip # 删掉原来的压缩包 $...
  • 做一个简单的桌面应用也很nice,但是随着深入,对python做功能复杂的web项目我彻底死心了​,每个环节都是一堆的坑,部署阶段更甚,我真是被折磨的没招了,打算老老实实把项目nodejs上面吧。希望有经验的django...
1 2 3 4 5 ... 20
收藏数 42,102
精华内容 16,840
关键字:

python项目部署到linux