conda 容器学习笔记之一 -- 基础环境配置
1、容器瘦身导致部分应用缺少需要在非容器环境下部署环境。但为避免破坏现有环境现有使用conda环境进行隔离管理创建conda create -n tts python3.10.02、conda 是python环境管理和python无关的东西比如cann还是会影响下载conda安装包Anaconda3-2021.04-Linux-aarch64.shIndex of / (anaconda.com)查看conda环境 conda info --envs克隆conda环境conda create -n 新环境名称 --clone 老环境名称注同一个容器环境中才能使用create复制激活进入环境source activate yk_bloom_7b 或者 conda activate yk_bloom_7b退出环境 conda deactivate复制conda create -p /usr2/z00443407/anaconda3/envs/pytorch --clone /usr2/x00358195/anaconda3/envs/pytorch3、史上最全最详细的Anaconda安装教程-CSDN博客4、基于 conda create python3.10.0 -p/path/envs/tts_py310在指定路径下创建后可以使用conda env list确认是否创建成功5、pip 依赖包的配置可以写到文件requirments.txt中执行pip install -r requirments.txthttps://zhuanlan.zhihu.com/p/7135110876、新创建的conda环境需要 conda config --append envs_dirs XXX地址补充环境的路径然后使用conda env list才能显示在XXX路径下的环境解决conda环境中有环境地址但是没有环境名或激活不了的问题_windows conda环境没有名字-CSDN博客7、 python3 -m venv tlm-venvsource tlm-venv/bin/activate注意使用venv 制作的环境并没有将基础环境完整备份比如可能找不到头文件因此使用conda create备份环境是更全面的备份但是占用更多磁盘8、如果容器外可以使用git, 容器内无法下载代码一般是因为容器内部的秘钥配置问题可以将宿主机的秘钥复制到容器内docker cp ~/.ssh ubuntu-zyd-share:/root/.ssh (包括 id_rsa, id_rsa.pub, known_hosts)进入容器设置权限 私钥必须不可被其他用户访问chmod 600 id_rsa # 私钥仅所有者可读写chmod 644 id_rsa.pub known_hosts # 公钥和 known_hosts 可被读取9、导入容器操作docker load -i jinwu_llama2.tar它期待的是完整的镜像格式(层历史、元数据、标签)docker import jinwu_llama2.tar jinwu_llama2:latest 导入容器快照10、venv和conda均有python包管理的功能因此安装时选择的pip是关键它 “属于哪个环境” 直接决定了包会被安装到哪里 如果pip属于当前激活的triton_cpu虚拟环境即pip的路径包含triton_cpu目录那么pip install会把包安装到triton_cpu的site-packages目录下仅该环境可用 如果pip属于全局环境比如你的/root/anaconda3/bin/pip即使激活了triton_cpupip install也会把包装到全局环境所有依赖全局环境的项目都会共用这个包失去了虚拟环境的隔离意义(triton_cpu) z00443407llvm:~/BiShengIR/build_BiShengIR$ pip install pybind11Requirement already satisfied: pybind11 in /root/anaconda3/lib/python3.12/site-packages (3.0.1)比如这里虽然使能了triton_cpu但仍旧被安装到conda中是因为pip是属于conda路径11、可编辑模式安装Python 是通过符号链接直接从你的源码目录/usr2/z00443407/BiShengIR/triton/python加载ext1而非将ext1复制到triton_cpu环境总结安装方法a 和 安装方法b 是两种独立的安装方法均可以实现安装的目的但他们安装后的模块路径可能存在差异不能基于find进行判断(只有方法a 才真正将模块复制到虚拟环境中)而应该基于python -v -c from triton.language import ext1确认是否相应的模块能否导入安装方法a) python ./setup.py bdist_wheel python -m pip install ./python/dist/triton-3.0.0gitd72c763c-cp311-cp311-linux_x86_64.whl安装方法b) pip install -e python --no-build-isolation12、复制venv环境的方法source ~/nodocker-venv/bin/activate pip freeze requirements.txt deactivate # 2. 创建新环境 python3 -m venv ~/nodocker-venv-copy # 3. 在新环境中安装依赖 source ~/nodocker-venv-copy/bin/activate pip install -r requirements.txt