python生产环境部署
文章目录
- 一、前言
- 二、准备工作
- 三、安装python
- 四、安装虚拟环境
一、前言
在实际工作中,很多公司的生产环境都是隔离外网的,而且往往多个项目组共用相同的服务器,因此经常会遇到两个问题:
- python以及第三方模块的版本难以统一;
- 缺少特定依赖时,都需要手动安装。
本文的目的就是为了解决以上两个问题,总结自己在实际工作中的相关经验,让用python开发算法的小伙伴能够避免重复踩坑,减少这方面的时间浪费,将更多的精力投入到算法的开发和优化上。
注:本文中的生产环境是Linux系统,且用户为非root用户。
二、准备工作
通常生产环境的服务器上是有运维人员安装好的python环境的,但是具体版本可能会跟自己的需要不太一致,有可能会导致某些第三方模块无法安装甚至留下一些当下无法发现的兼容问题,因此最好还是安装一个跟自己本地环境一致的python版本,下面介绍一下各安装包的具体准备方法:
1.python解释器安装包
下载途径:官方网站
2.第三方模块
第一步:切换到项目的本地虚拟环境,导出模块清单:
# 文件在当前目录下
pip3 freeze > requirements.txt
第二步:下载清单中的安装包:
# YOUR_DIR为你要存放安装包的文件夹路径
pip3 --timeout=600 wheel -i https://pypi.tuna.tsinghua.edu.cn/simple -w YOUR_DIR -r requirements.txt
pip3 --timeout=600 download -i https://pypi.tuna.tsinghua.edu.cn/simple -d YOUR_DIR -r requirements.txt
注意:
(1)两个命令都要执行,目的是为了防止遗漏;
(2)生产环境一般为Linux,因此也要在linux上进行上述操作,如果是Mac或者Windows,下载的安装包可能是不能用的;
(3)有一个第三模块virtualenv是必须的,如果清单中没有,需要手动下载。
三、安装python
将下载好的安装包上传到服务器上,执行以下步骤。
第一步:安装python解释器。
# 解压
$ tar xvJf Python-3.6.5.tgz# 进入目录
cd Python-3.6.5# 新建文件夹
$ mkdir bld
$ cd bld/# 生成Makefile(--prefix参数指定程序安装目录)
$ ../configure --prefix=/usr/local/python3
# 注:指定安装目录的目的是为了方便以的维护、卸载或移植。当不再需要时,删除该安装目录,就可以把软件卸载干净# 编译
$ make all# 安装
make install# 查看安装后的位置
$ whereis python3
第二步:安装virtualenv
模块。
# 这时服务器上有多个python版本,需要指定python路径,dirpath为第三方模块安装包的存放路径
xxx/xxx/python3 -m pip install --no-index --find-links=dirpath virtualenv
第三步:配置环境变量(可选项)。
# 平时习惯直接用python3命令执行脚本,如果觉得有必要的话,可以配置一下环境变量
# 1.编辑当前用户的环境变量的配置文件
vim ~/.bashrc
# 2.写入如下内容
PYTHON_HOME=/your_python_path
PATH=$PYTHON_HOME/bin:$PATH
# 3.保存退出,执行source命令使之生效
source ~/.bashrc
注意:
(1)python解释器会依赖一些操作系统组件,例如:
zlib-devel
bzip2-devel
openssl-devel
ncurses-devel
sqlite-devel
readline-devel
tk-devel
libffi-devel
wget
gcc
make
有时可能会遇到gcc
或者openssl
等报错,导致python安装失败,这时最好跟运维人员沟通,不要自作主张,对这些组件进行安装或者更新版本,尤其在有root权限的情况下,因为哪怕是一个小版本的改动,都有可能导致服务器上一些应用出现问题。所以实在不行的话,考虑一下换一台服务器吧,这是最简单的解决办法。
四、安装虚拟环境
接下来创建虚拟环境。
第一步:在当前路径下用virtualenv
创建虚拟环境。
# virtualenv用绝对路径,它与python在同一位置,venv为虚拟环境名
xxx/xxx/virtualenv --no-site-packages venv
注意:virtualenv
的版本不同,参数可以会有一些差别,可以用命令virtualenv --h
查看,根据自己的需要进行选择。
第二步:进入虚拟环境。
source venv/bin/activate
# 进入虚拟环境后,命令行的最左侧会出现(venv)标识。
第三步:安装第三方模块。
# 自动安装模块包
python3 -m pip install --no-index --find-links=dirpath -r xxx/xxx/requirements.txt
# 安装完成后,检查一下
pip3 freeze
以上工作完成后,这就可以正常进行部署等后续操作了,当操作完毕后,可以手动退出虚拟环境,命令如下:
deactivate
至此,python生产环境部署就已经完成了,当然还有一些小技巧可以让使用变得更便捷,例如创建软连接等,小伙伴们可以根据自己的习惯去DIY。
python生产环境部署相关推荐
- Python生产环境部署(fastcgi,uwsgi)
Python部署web开发程序的几种方法 fastcgi ,通过flup模块来支持,在nginx里对应的配置指令是 fastcgi_pass http,nginx使用proxy_pass转发,这个要求 ...
- 如何让nginx执行python代码_生产环境部署Python语言代码(django+uwsgi+nginx)
本文主要向大家介绍了生产环境部署Python语言代码(django+uwsgi+nginx),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 基础环境不做介绍,在django开发w ...
- django生产环境部署
最近尝试进行一些python web生产环境部署的任务.主要是使用django框架进行web开发.本地使用windows + python3.7可是上到服务器之后是ubuntu系统.ubuntu默认是 ...
- springcloud生产环境一般怎么部署_机器学习模型生产环境部署的四种系统架构总结...
本文将从简单到复杂介绍典型架构的特点以及其优缺点. 介绍 一旦数据科学家对模型的性能感到满意,下一步便是"模型生产环境部署", 没有系统的合理配置,您的Kaggle Top1模型可 ...
- Django + Uwsgi + Nginx 实现生产环境部署1
项目开发完毕后,需要将代码放到服务器上,这样用户才能访问.接下来我们一步一步来进行一波部署操作. 1. 简单粗暴 项目开发完毕,在部署之前需要再配置文件中将 ALLOWED_HOSTS配置设置为:当前 ...
- 深度学习TensorFlow生产环境部署(环境准备篇)
最近在研究Tensorflow Serving生产环境部署,尤其是在做服务器GPU环境部署时,遇到了不少坑.特意总结一下,当做前车之鉴. 1 系统背景 系统是ubuntu16.04 ubuntu@ub ...
- 11-02 生产环境部署 部署微电影网站
生产环境部署 关键点: 安装依赖包 关闭调试模式 app.debug = False 修改mysql数据库连接,导入数据 开启多个端口后台运行 配置nginx反向代理 安装依赖包 步骤1: 获取依 ...
- SpringBoot与ElasticSearch、ActiveMQ、RocketMQ的整合及多环境配置、响应式框架WebFlux、服务器端主动推送SSE技术、生产环境部署、Actuator监控平台
1.SpringBoot 与 ElasticSearch 框架的整合 (1)主要的搜索框架:MySQL.Solr.ElasticSearch MySQL:使用 like 进行模糊查询,存在性能问题 S ...
- Vue.js 生产环境部署
生产环境部署 开启生产环境模式 开发环境下,Vue 会提供很多警告来帮你对付常见的错误与陷阱.而在生产环境下,这些警告语句却没有用,反而会增加应用的体积.此外,有些警告检查还有一些小的运行时开销,这在 ...
最新文章
- 卷积神经网络——本质上是在利用卷积做特征压缩,然后再全连接
- plSQL复制数据的方法
- Go 语言学习笔记(二):函数
- cad java_cad和java哪个工资高
- 上海云栖:金融政企行业的CDN最佳实践
- 关于网页js判断“客户端设备类型是移动端还是PC端“的解决方法?
- Node.js 连接 MySQL 并进行数据库操作 –node.js 开发指南
- 基于JQuery框架的AJAX
- AWS ECS简单了解
- 保山一中2021高考成绩查询,云南省保山第一中学
- Remote Desktop Connection Manager (RDCMan)
- Jmeter接口性能测试分布式的环境搭建
- TreadLocal理解
- finecms aip.php漏洞,finecms 最新版v2.3.3前台getshell
- DCMTK之MPPS服务实现
- 专业工作站版、企业版、企业LTSC版、Servers版哪个更稳定更适合应对灾难
- VUE3 vue-devtools 调试工具下载安装
- android获得手机的时间格式,Android获取手机通讯录并按照时间电话类型分类处理...
- Windows平台mantis安装
- 机器学习应用设计阶段的 10 个陷阱和 11 个最佳实践