ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

python flask项目linux的部署以及本地js的跨域访问

2022-04-08 17:00:31  阅读:236  来源: 互联网

标签:跨域 python js nginx python3 安装 uwsgi usr


本文章是linux机器可以联网的情况下,安装python环境,以及部署flask项目的详细步骤。

如果已经安装过python环境,此步骤可以忽略

python环境的安装步骤:

1.linux环境下默认的python版本是2.7 ,如图所示本人的linux系统版本。

 

 

 2.下载安装python环境需要的压缩包,我安装的是python3.7.3,如果你想安装其他的版本,可以修改相应的数字

举例:3.7.3/Python-3.7.3.tgz---》3.8.3/Python-3.8.3.tgz
wget --no-check-certificate https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

3.解压安装

cd /usr/local
mkdir python3
tar -zxvf ./Python-3.7.3.tgz -C /usr/local/python3

4.安装到指定的目录,然后构建安装

cd /usr/local/python3/Python-3.7.3
./configure --prefix=/usr/local/python3    # 将python3安装在这个目录
make
make install

5.执行make install 安装的时候,有时候报出这样的错误

 

 解决办法:

yum install libffi-devel -y                #安装libbffi-devel软件包
./configure --prefix=/usr/local/python3    # 将python3安装在这个目录
make
make install

问题原因:

Python3中有个内置模块叫ctypes,它是Python3的外部函数库模块,它提供兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用CentOS7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。
由于在CentOS7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pip的时候就报了"ModuleNotFoundError: No module named '_ctypes'"的错误。

6.重新执行完上面的命令之后出现,代表成功

 

 7.接下来,还需要配置环境变量

vi ~/.bash_profile
添加以下代码:
export PYTHON_HOME=/usr/local/python3
export PATH=$PYTHON_HOME/bin:$PATH

8.执行命令,使配置文件添加的代码生效

source ~/.bash_profile

9.执行python3 -V,pip3 list 出现,证明python环境安装成功

 

 安装flask环境:

nginx的安装:

1.首先安装nginx,下载并且解压

 

wget -c https://nginx.org/download/nginx-1.19.9.tar.gz 
tar -zxvf nginx-1.19.9.tar.gz -C /usr/local
cd /usr/local
mkdir nginx
cd nginx-1.19.9
./configure --prefix=/usr/local/nginx
make&&make install

 

2.测试nginx是否安装成功

 

 

 3.nginx安装成功的标志

 

 

 

 

 4.nginx的热加载,如果修改了配置文件,可以通过下面这个命令进行热加载

./sbin/nginx -s reload

5.结束nginx进程的方法

强制停止:kill -9 nginx master 进程和work进程

批量停止:pkill nginx

uwsgi的安装:

1.安装命令

pip3 install uwsgi

flask的安装:

1.安装命令

pip3 install flask

重要:修改nginx的配置文件nginx.conf

 

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        access_log /root/script/flask.log;
        error_log /root/script/flaskError.log;
        location /{
                include /usr/local/nginx/conf/uwsgi_params;   # 导入uwsgi配置
                uwsgi_pass 127.0.0.1:5555;   # 转发端口,需要和uwsgi配置当中的监听端口一致

                uwsgi_param UWSGI_PYTHON /usr/local/python3/bin/python3;   # Python解释器所在的路径,如果有虚拟环境可将路径设置为虚拟环境
                uwsgi_param UWSGI_CHDIR /root/myproject;                   # 项目根目录
                uwsgi_param UWSGI_SCRIPT app:app;                          # 项目的主程序,比如你测试用app.py文件,文件中app = Flask(__name__),那么这里就填app:app


        }
       # location / {
        #    root   html;
         #   index  index.html index.htm;
        #}

uWSGI 配置:

mkdir script
vim uwsgi.ini

 

 

 上传你的python测试代码:

mkdir myproject

代码测试内容:

from flask import Flask, request, jsonify
from flask import render_template
app = Flask(__name__)


@app.route('/')
def hello_world():
    return "hello world"
if __name__ == '__main__':
    app.run()

到现在为止,所有的安装工作已经准备就绪,接下来 启动服务

1.启动nginx

 

 

 2.启动uwsgi,前台启动

 

 但是不建议前台启动,建议后台启动

uwsgi -d --ini uwsgi.ini

 

 

 3.访问linux的ip,结果返回的值

 

注意可能会出现的错误:跨域问题:

https://blog.csdn.net/whatday/article/details/106298170/

 

标签:跨域,python,js,nginx,python3,安装,uwsgi,usr
来源: https://www.cnblogs.com/yyfyl/p/15039032.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有