Linux环境Miniconda部署Python服务
- 0.背景
- 1.关于Miniconda
- 1.定义
- 2.Miniconda、Conda、Anaconda
- 2.安装Miniconda
- 1.下载
- 2.安装
- 3.配置环境变量
- 4.禁用base环境
- 5.配置镜像源
- 3.搭建Python环境
- 1.创建Python环境
- 2.部署Python环境
- 4.部署Python项目
- 5.gunicorn安装使用 TODO
- 1.
- 6.Flask TODO
- 99.参考
0.背景
新项目需要整合Python算法,为了减少异构系统版本及依赖的影响,降低整合难度,Python算法基于Flask开发为web服务。开发完成后,需要部署到Linux服务器作为web服务运行。因为Python工程师不熟悉Linux环境,部署的任务”顺理成章“地落到了我的头上。
1.关于Miniconda
1.定义
Miniconda是一款小巧的python环境管理工具,安装包大约只有50M多点,其安装程序中包含conda软件包管理器和Python。
2.Miniconda、Conda、Anaconda
- Conda:Conda是一个开源的包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。它主要用于Python编程语言及其相关的数据科学、机器学习等应用领域。
- Anaconda是一个用于科学计算的Python发行版,它包含了conda、Python和许多常用的科学计算、数据分析、机器学习等库。
- Miniconda是一个轻量级的Anaconda发行版,它只包含conda和Python。相比于完整的Anaconda发行版,Miniconda的体积更小,安装速度更快,适合在资源受限的环境中使用,例如在某些嵌入式系统或容器中。
2.安装Miniconda
1.下载
官方下载地址
下载Linux版本
2.安装
上传到Linux,如/opt目录下,执行脚本:
bash Miniconda3-latest-Linux-x86_64.sh
可选 手动指定安装目录,在此步骤自定义输入: [/root/miniconda3] >>>
# 查看版本
conda --version
3.配置环境变量
#创建miniconda环境变量文件
vim /etc/profile.d/conda_env.sh
输入内容
#Miniconda
export CONDA_HOME=/opt/module/miniconda3
export PATH=$PATH:$CONDA_HOME/bin
加载环境变量配置文件
source /etc/profile.d/conda_env.sh
4.禁用base环境
conda config --set auto_activate_base false
5.配置镜像源
外网下载速度极慢,配置国内镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --set show_channel_urls yes
3.搭建Python环境
1.创建Python环境
# 创建python环境 版本3.11 名称 traffic
conda create --name traffic python=3.11
# 查看环境
conda info --envs
# 删除
conda remove -n 环境名称 --all
2.部署Python环境
# 激活环境
conda activate traffic
报错:
CondaError: Run 'conda init' before 'conda activate'
提示说先 conda init
,查了资料,大家说可以
source activate
# 退出当前虚拟环境
conda deactivate
试了一下,解决了问题。
4.部署Python项目
上传python程序(app.py基于Flask开发)到某目录下,如/home/traffic
。
创建日志文件/home/traffic/logs/app.log
,用于日志查看
# 激活环境
conda activate traffic
# 守护进程方式启动项目
nohup python app.py >/home/traffic/logs/app.log 2>&1 &
根据app.log的错误信息,安装下缺少的包:
# 安装相应的包 多个空格分隔
conda install numpy flask geopy
报错:
conda install numpy flask geopy
Channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed
PackagesNotFoundError: The following packages are not available from current channels:
- geopy
Current channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- defaults
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
解决:
conda config --add channels conda-forge
查看日志,或者查看进程ps aux | grep python
,校验发现成功,收工。
5.gunicorn安装使用 TODO
根据4中启动日志WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
,启动python服务使用的是默认的web服务器。默认服务器性能极差,无法支撑需求。在此,我们使用gunicorn作为服务器替代。
1.
6.Flask TODO
99.参考
~
~