将代码上传到服务器:
安装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