itwiki:anaconda-micromamba

PYTHON虚拟环境管理

anaconda 是一个比较全面的PYTHON工具包,安装了FLASK,科学计算等一系列的库,而 MiniConda 只是包含一个环境管理工具,PYTHON环境这些需要自己安装,这里主要还是讲使用conda进行环境管理

conda create --name py377 python=3.7.7 --channel conda-forge
conda activate py377
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlwt

使用 -i 参数指定安装模块所在的网站

cd app-root
pipreq ./
pip install -r requirements.txt

requirements.txt 如下(示例)

# modulename[(==|>|<)version]
requests
tushare<0.8
psycopg2
pandas==0.24.0
xlwt
pip install -q[qq] module 静默安装,只显示必要的信息

如果要写Crond计划任务文件,注意将激活了环境后的PATH变量的值传送给计划任务文件

# vi /etc/cron.d/IPMS
PATH="/opt/soft/anaconda202002/envs/py377/bin:/opt/soft/anaconda202002/condabin:/opt/software/spark-2.3.0-bin-hadoop2.7/bin:/opt/software/spark-2.3.0-bin-hadoop2.7/sbin:/usr/local/jdk1.8.0_161/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/ssh-server/bin:/root/bin"

MAILTO=""
*/5 * * * * c_HsiaoTien /opt/devel/IPM/sbin/arp-scan refresh
jupyter server --generate-config
jupyter server password
vi ~/.jupyter/config.py

之后可以启动JUPYTER

MicroMamba 是一个 MiniConda 的替代,在官网安装最新的 MiniConda 时,可能会遇到GLIBC标准库过旧的问题,这个库是LINUX系统核心库,一般不能变更。而 MicroMamba 不需要太高版本的 GLIBC,另外 具官方说明,该工具是一个单文件的小工具,且在处理虚拟环境时稳定性更好。

官方网站:MicroMamba

Linux

 "${SHELL}" <(curl -L micro.mamba.pm/install.sh) 

Windows Powershell

 Invoke-Expression ((Invoke-WebRequest -Uri https://micro.mamba.pm/install.ps1).Content) 

参考 Anconda, 在创建虚拟环境时,可能报 NOT EXISTS,这样的话,可以用更短的版本号试试,比如 我们创建一个PYTHON3.7的环境,在使用 python=3.7.7 时报不存在,但使用 python=3.7时就可以创建。

激活需要打包的环境

 micromamba activate my-app 

安装打包工具

 pip install conda-pack 

进行打包

conda-pack # 打包当前激活的环境
conda-pack -n my-app # 根据虚拟环境名称打包
conda-pack -p /opt/micromamba/envs/my-app #根据环境目录打包
conda-pack -n my-app -o output-name.tar.gz #指定打包的文件名

打包完成后,会在你执行命令的目录下出现一个 my-app.tar.gz 的压缩文件

mkdir -p /opt/my-app
tar xzvf my-app.tar.gz -C /opt/my-app
. /opt/my-app/bin/activate #激活环境
. /opt/my-app/bin/deactivate #解除激活
conda-unpack #

注意:目标机器与源机器发行版本要一致,最好是完全一致,如果不能做到这一些,应该做到发行版比原来的新,且不要跨度太大

另外,此方法只打包PYTHON环境,但如果项目调用了非PYTHON功能,比如 snmpwalk 之类的系统命令,还有一些其他动态链接库,如 libpq 之类的外部库,也要一并解决。

  • itwiki/anaconda-micromamba.txt
  • 最后更改: 2024/01/13 02:12
  • ovwx@live.io