python pipenv环境部署django项目实践

news2024/11/24 9:15:44

将代码上传到服务器:

安装pipenv:

pip3 install pipenv

安装项目虚拟环境:

cd /www/wwwroot/python-django

pipenv install

如果提示python版本问题,修改Pipfile文件内的python版本即可。

然后进入虚拟环境安装依赖包:

pipenv shell 

运行项目如果缺少某包,就安装即可

pip3 install xxx包

后台运行程序shell脚本:

#!/bin/bash

#应用入口文件
APP_NAME=/www/wwwroot/python-django/manage.py

#使用说明,用来提示输入参数
usage(){
    echo "Usage: sh run.sh [start|stop|restart|status]"
}

#检查程序是否在运行
is_exist(){
    pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
    if [ -z "${pid}" ];then
        return 1
    else
        return 0
    fi
}

#启动方法
start(){
    is_exist
    if [ $? -eq 0 ];then
        echo "${APP_NAME} is already running. pid=${pid}"
    else
        pipenv run nohup python3 ${APP_NAME} runserver >nohup.out 2>&1 &
    fi    
}

#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi  
}

#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}

#重启方法
restart(){
  stop
  sleep 5
  start
}
 
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

/***************************************************/

如果高版本django提示mysql8的问题,注释掉版本检查即可,如下图:

 

 

/**************************************************************/

于是 pipenv 应运而生。见名识意,pipenv 就是 pip 和 virtualenv 的结合体。

安装

直接使用 pip3 进行安装即可。

pip3 install pipenv
  • 1

创建虚拟环境

$ mkdir demo
$ cd demo
$ pipenv install

图片 安装完成之后会在你的项目目录自动生成 Pipfile 和 Pipfile.lock 两个文件,他们主要是用来管理包的。不信,我们用 pipenv 安装下 requests 库试一下。

$ pipenv install requests
  • 1

咱们来看下 Pipfile 和 Pipfile.lock 的内容。

#Pipfile

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
requests = "*"

[dev-packages]

[requires]
python_version = "3.8"

#Pipfile.lock

{
省略部分信息
"default": {
    "requests": {
        "hashes": [
            "sha256:27973dd4a...",
            "sha256:c210084e3..."
        ],
        "index": "pypi",
        "version": "==2.25.1"
    },
省略部分信息
},
"develop": {}
}

Pipfile 列出了 requests 库的信息和 Python 版本信息,细心的你可能发现了,该文件中还有一个 dev-packages 的信息,安装时如果指定 -dev 参数,那么就会记录在 dev-packages 下面。而 Pipfile.lock 则保存了库的哈希值,这是确保生产环境和开发环境库信息一致的关键。

当你把项目从开发环境复制到生产环境之后,只需要执行 pipenv install 就可以了,无需在重新安装之前在开发环境安装的包了,是不是很省心。

其他命令

进入虚拟环境:

$ pipenv shell
  • 1

退出虚拟环境:

$ exit
  • 1

安装库:

$ pipenv install xxx
  • 1

删除库:

删除指定库

$ pipenv uninstall xxx
  • 1

删除所有库

$ pipenv uninstall --all
  • 1

升级库:

$ pipenv update
  • 1

查看库的具体信息:

$ pipenv open xxx
  • 1

获取本地工程路径:

$ pipenv --where
  • 1

获取虚拟环境路径

$ pipenv --venv
  • 1

检查库的依赖关系,这个非常有用。

$ pipenv graph
  • 1

检查库的安全性:

$ pipenv check
  • 1

删除虚拟环境:

$ pipenv --rm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/923264.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java学数据结构(1)——抽象数据类型ADT 表List、栈Stack和队列Qeue

目录 引出抽象数据类型(abstract data type,ADT)表ListArrayList,Vector, LinkedListArrayList手动实现与分析Vector的分析(线程安全)LinkedList 的手动实现与分析 栈stack—后进先出java中stack源码分析栈的应用:检查…

Android 市场的变化,影响多少开发被迫……

前言 Android 开发在2010年时,广受市场需要,那时候在一线城市很容易拿到10K的起步薪资,Android开发的市场空缺大概有30万左右。那时引起了大量java开发者开始学习Android开发,招聘市场面试要求上只要有一定java语法基础&#xff…

使用Nodejs创建简单的HTTP服务器,借助内网穿透工具实现公网访问的方法分享

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

淘宝销量采集(淘宝店的销售数据如何获取),淘宝API接口申请指南

淘宝销量采集是在网络商业流程中的一个非常重要的环节,可以帮助商家更好地了解市场的消费状况和竞争情况。通过对淘宝商品的销量数据进行采集与分析,商家可以有效地了解市场上的热销商品、竞争情况、市场价格趋势等重要信息,从而制定相应的营…

【DevOps视频笔记】4.Build 阶段 - Maven安装配置

一、Build 阶段工具 二、Operate阶段工具 三、服务器中安装 四、修改网卡信息 五、安装 jdk 和 maven Stage1 : 安装 JDK Stage 2 : 安装 Maven 2-1 : 更换文件夹名称 2-2 : 替换配置文件 settings.xml- 2-3 : 修改settings.xml详情 A. 修改maven仓库地址 - 阿里云 B…

RISC-V IOPMP实际用例-Andes SoC‘s Rapid-k模型

安全之安全(security)博客目录导读 2023 RISC-V中国峰会 安全相关议题汇总 说明:本文参考RISC-V 2023中国峰会如下议题,版权归原作者所有。

Tomcat漏洞复现+哥斯拉利用

Tomcat 8 启动tomcat8漏洞 将jsp木马保存到zip压缩包中&#xff0c;再修改后缀名为war上传 <%page import"java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){retu…

prometheus监控JVM(接入tomcat)

一、整合jmx_exporter及tomcat 1、 jmx_exporter下载地址 https://github.com/prometheus/jmx_exporter/releases 2、 tomcat配置文件下载地址 https://github.com/prometheus/jmx_exporter/blob/main/example_configs/tomcat.yml 3、创建tomcat_exporter目录 [rootlocalhost ~…

怎么快速生成gif?三步教你一键生成gif动图

相信大家都有使用过表情包吧&#xff0c;那么自己怎么将图片转gif动图表情包呢&#xff0c;其实很简单&#xff0c;只要使用这款在线gif制作&#xff08;https://www.gif.cn&#xff09;工具&#xff0c;就可以一键生成gif动图&#xff0c;下面一起来看看。 打开网站&#xff…

让家长自己动手,轻松查询分班信息

暑假即将结束&#xff0c;老师们面临着制作分班信息查询系统的重要任务。今天给大家推荐的这个工具对于老师们来说非常重要&#xff0c;因为它可以提供给家长和学生们方便快捷的查询服务。 分班信息查询系统可以让家长和学生们通过系统查询自己所在的班级、同班同学的信息以及班…

交通科技与管理杂志社交通科技与管理编辑部2023年第9期目录

专家论坛 黑龙江省经济高质量发展与生态环境保护耦合协调发展研究 刘降斌;祃玉帅; 1-5142 我国省际数字经济高质量发展水平综合评价研究 耿娟;毕晨曦; 6-8 振兴龙江《交通科技与管理》投稿邮箱&#xff1a;cn7kantougao163.com(注明投稿“《交通科技与管理》”) 数…

Windows怎么同时复制多个文字

Windows系统自带的剪贴板功能&#xff0c;即可优雅解决。 直接多次复制&#xff08;ctrlc,ctrlv或者鼠标操作&#xff09;&#xff0c;然后Win V 打开Windows系统自带的剪贴板功能。 像这样&#xff0c; 你就可以使用复制历史啦&#xff01;

RISC-V IOPMP实际用例-Rapid-k模型在NVIDIA上的应用

安全之安全(security)博客目录导读 2023 RISC-V中国峰会 安全相关议题汇总 说明&#xff1a;本文参考RISC-V 2023中国峰会如下议题&#xff0c;版权归原作者所有。

jvm 什么是常量池,常量池定义 class常量池

首先需要理解下Java的class文件&#xff0c;以及class文件结构&#xff1a; 1.Class文件是一组以8个字节为基础单位的二进制流&#xff0c;各个数据项目严格按照顺序紧凑地排列在文 件之中&#xff0c;中间没有任何分隔符&#xff0c;这使得整个Class文件中存储的内容几乎全部…

第四章 串 KMP算法

一、代码实现 int Index_KMP(SString s,sstring T,int next[] ){int i1, j1;while(i<s.length&&j<T.length){if(j0] ||s.ch[i]T.ch[j]){i;j;//继续比较后继字符}elsejnext[j];//模式串向右移动}if(j>T.length)return i-T.length;//匹配成功elsereturn 0; } …

1273. 删除树节点;2786. 访问数组中的位置使分数最大;889. 根据前序和后序遍历构造二叉树

1273. 删除树节点 核心思想&#xff1a;递归&#xff0c;从根节点出发&#xff0c;枚举父节点的子节点&#xff0c;如果它们的值加起来为0的话就把父亲的节点删除后剩余的数置为0&#xff0c;默认返回一个节点&#xff0c;del_remain保存的是&#xff0c;del_remain[x]表示完成…

常见的数据库备份方法,常用的数据库备份方法有哪三种

数据库作为存储和管理这些信息的核心&#xff0c;其安全性和稳定性尤为重要。因此&#xff0c;定期进行数据库备份是保护数据完整性的重要途径。下面我们就详细介绍几种常见的数据库备份方法。 1.全量备份 全备份是指备份数据库中的所有数据和元数据。这种方法通常用于开发或测…

【javaweb】学习日记Day6 - Mysql 数据库 DDL DML DQL

之前学习过的SQL语句笔记总结戳这里→【数据库原理与应用 - 第六章】T-SQL 在SQL Server的使用_Roye_ack的博客-CSDN博客 目录 一、概述 1、如何安装及配置路径Mysql&#xff1f; 2、SQL分类 二、DDL 数据定义 1、数据库操作 2、IDEA内置数据库使用 &#xff08;1&…

【Java alibabahutool】JSON、Map、实体对象间的相互转换

首先要知道三者的互转关系&#xff0c;可以先将JSON理解成是String类型。这篇博文主要是记录阿里巴巴的JSONObject的两个方法。toJSONString()以及parseObject()方法。顺便巩固Map与实体对象的转换技巧。 引入依赖 <!-- 阿里巴巴 JSON转换 以下二选一即可 没有去细研究两者…

中国电动汽车市场再添新玩家,小米启动造车梦 | 百能云芯

综合多家媒体广泛报道&#xff0c;知情人士透露&#xff0c;小米公司已获得正式批准&#xff0c;允许其踏入电动汽车制造领域。这一举措标志着这家在智能手机和物联网领域声名卓著的企业正迈向汽车制造领域&#xff0c;可谓迈出了重要的一步。按照计划&#xff0c;小米将于2024…