====== PYTHON虚拟环境管理 ====== ===== Anconada & MiniConda ===== anaconda 是一个比较全面的PYTHON工具包,安装了FLASK,科学计算等一系列的库,而 MiniConda 只是包含一个环境管理工具,PYTHON环境这些需要自己安装,这里主要还是讲使用conda进行环境管理 ==== 创建环境 ==== conda create --name py377 python=3.7.7 --channel conda-forge ==== 激活虚拟环境 ==== conda activate py377 ==== 在虚拟环境中安装PYTHON模块 ==== 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 ===== 范例 ===== ==== 创建JupyterLab配置文件并设置密码 ==== jupyter server --generate-config jupyter server password vi ~/.jupyter/config.py 之后可以启动JUPYTER ===== 使用 MicroMamba ===== MicroMamba 是一个 MiniConda 的替代,在官网安装最新的 MiniConda 时,可能会遇到GLIBC标准库过旧的问题,这个库是LINUX系统核心库,一般不能变更。而 MicroMamba 不需要太高版本的 GLIBC,另外 具官方说明,该工具是一个单文件的小工具,且在处理虚拟环境时稳定性更好。 官方网站:[[https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html|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'' 之类的外部库,也要一并解决。