Flask项目部署到Ubuntu上

前期准备

将在本地开发好的Flask项目打包,发送到云主机上,可以使用xftp等传输工具放到远程主机上。

安装python虚拟环境

sudo apt install python3-pip

2.安装virtualenv

sudo pip install virtualenv
sudo pip install virtualenvwrapper

3.配置环境变量


export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

4.刷新配置文件

source ~/.bashrc

5.虚拟环境操作

mkvirtualenv 名称
mkvirtualenv -p python3 名称
workon
workon 名称
deactivate

5.删除虚拟环境

rmvirtualenv 虚拟环境名称
例 :删除虚拟环境py3_flask
先退出:deactivate
再删除:rmvirtualenv py3_flask

6.问题

1./usr/bin/python: No module named virtualenvwrapper

错误原因:

Ubuntu安装了2.7和3.x两个版本的python,在安装时使用的是sudo pip3 install virtualenvwrapper在运行的时候默认使用的是python2.x,但在python2.x中不存在对应的模块

解决办法:


VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

安装Nginx

sudo apt-get install nginx

安装好Nginx后,系统会默认创建一个目录”/var/www/html”,若通过公网ip地址能够看到一个大写的Nginx界面就说明成功了。
Nginx配置文件路径:/etc/nginx/sites-available/default,后面会用到

安装环境

1.执行 pip3 freeze > requirements.txt在本机中将项目所需的依赖输出到文本文件中。

2.在服务器中进入虚拟环境,在执行 pip3 install -r requirements.txt安装所需依赖包
3.执行 pip3 install uwsgi安装uwsgi

配置Nginx

vim /etc/nginx/sites-available/default

修改文件如下所示

server {

    listen 8002;

    root /var/www/Flask;

    index index.html index.htm index.nginx-debian.html;

    server_name 公网ip(或域名);

    location / {

        try_files $uri $uri/ =404;
        include         uwsgi_params;
                uwsgi_pass      127.0.0.1:8000;
                uwsgi_param UWSGI_PYHOME /var/www/Flask/venv;
                uwsgi_param UWSGI_CHDIR /var/www/Flask;
                uwsgi_param UWSGI_SCRIPT app:app;

    }

}

修改完成后重启Nignx服务

sudo service nginx restart

配置uwsgi


vim config.ini

填入以下内容


http = 内网ip:8002

chdir = /var/www/Flask

wsgi-file = app.py

callable = app

processes = 4

threads = 2

stats = 127.0.0.1:5000

daemonize = /var/www/Flask/logs/uwsgi.log

最后执行 uwsgi config.ini不出意外,flask项目就在后台执行起来了
在浏览器中输出域名(IP):端口即可访问

uwsgi开机自启动

1.首先需要将上面配置文件的daemonize改为logto,daemonize不仅告知了程序的日子文件输出位置还让程序后台运行,因此在系统启动的过程中会重复启动导致失败。


logto = /var/www/Flask/logs/uwsgi.log

2.创建开机启动项
/ect/init.d中新建脚本startuwsgi.sh,并赋予755权限,写入一下内容

#!/bin/sh

/usr/local/bin/uwsgi --ini /xxx/config.ini

3.使用update-rc.d使脚本开机运行,然后重启即可完成

update-rc.d startuwsgi.sh defaults 99

参考:https://blog.csdn.net/weixin_39212776/article/details/81321055

Original: https://blog.csdn.net/weixin_43435307/article/details/122672073
Author: 十里春风_jzh
Title: Flask项目部署到Ubuntu上



相关阅读

Title: 学习笔记:vscode中python+django环境搭建

1、安装python环境(这里安装的python3.7版本)

2、安装django

打开dos命令行,执行命令:

pip install django

安装成功后注意查看django的安装路径,后面有用

Flask项目部署到Ubuntu上

也可以用命令查看django安装路径:

pip show django

Flask项目部署到Ubuntu上

3、创建django项目

1)打开dos命令行,运行命令创建工程项目

django-admin startproject hello_django

2)进入到django工程目录下中

cd hello_django

3)通过venv创建python虚拟环境

python -m venv venv (后一个venv是虚拟环境的目录名)

如下图:

Flask项目部署到Ubuntu上

创建成功后项目文件夹如下图所示:

Flask项目部署到Ubuntu上

然后到django的安装路径下面直接复制django目录中的如下2个文件夹,复制到所创建的虚拟环境 venv -> Lib -> site-packages下面 (重要)

Flask项目部署到Ubuntu上

Flask项目部署到Ubuntu上

4、在vscode软件中,添加django插件

(vscode之前已配置好python开发环境)

Flask项目部署到Ubuntu上

5、使用vscode打开之前创建的django工程项目

打开后如下图所示:

Flask项目部署到Ubuntu上

6、关联python虚拟环境

vscode中输入 shift+ctrl+p ,如下图,选择python选择解释器

Flask项目部署到Ubuntu上

然后选择带有虚拟环境venv的python解释器

Flask项目部署到Ubuntu上

7、配置django项目启动文件

vscode左侧菜单栏切换到运行和调试,点击”创建 launch.json”文件

Flask项目部署到Ubuntu上

选择python

Flask项目部署到Ubuntu上

选择Django

Flask项目部署到Ubuntu上

选择后如下所示,点击启用运行

Flask项目部署到Ubuntu上

结果发现报错了,提示”Couldn’t import Django………….”如下图:

Flask项目部署到Ubuntu上

报错解决方法

在终端再执行一遍 “pip install django” 安装命令即可解决,如下图:

Flask项目部署到Ubuntu上

安装后再点击启动项目,看到启动成功了,如下图所示,浏览器直接访问http://127.0.0.1:8000/看到django已经成功启动

Flask项目部署到Ubuntu上

Flask项目部署到Ubuntu上

启动遇到的其他报错问题:

无法在powershell运行python venv

1)查看当前策略,在powelshell下执行命令,如果显示Restricted表示不允许任何脚本运行:

get-ExecutionPolicy

2)更改策略,执行命令

set-ExecutionPolicy RemoteSigned

RemoteSigned 执行策略可防止 Windows PowerShell 运行没有数字签名的脚本

Flask项目部署到Ubuntu上

更改后可以看到显示如下表示成功

Flask项目部署到Ubuntu上

Original: https://blog.csdn.net/yyz111111/article/details/121994200
Author: 只有风在欢舞
Title: 学习笔记:vscode中python+django环境搭建

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/299950/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总