新建Conda环境出现大量依赖包,如何创建纯净无依赖环境?
解决Conda创建纯净无依赖环境的问题
问题原因
默认conda create会安装Python的默认依赖包,再加上可能存在pip路径混淆、全局配置继承的问题,导致pip freeze输出大量非必要包。
解决方案
创建环境时禁用默认依赖包
使用--no-default-packages参数创建仅包含Python核心的环境,不附带默认依赖:(base) conda create --name new_env1 python=3.11 --no-default-packages确认使用当前环境的pip
激活环境后,先检查pip路径是否属于当前环境:# Linux/macOS (new_env1) which pip # Windows (new_env1) where pip正确输出应指向
new_env1环境目录下的pip(比如~/miniconda3/envs/new_env1/bin/pip),如果输出是base环境的路径,说明环境激活不彻底,可重新激活或直接使用全路径调用pip。临时禁用pip全局配置
若pip读取了用户全局配置导致额外包被统计,可临时禁用:# Linux/macOS (new_env1) export PIP_CONFIG_FILE=/dev/null # Windows (new_env1) set PIP_CONFIG_FILE=NUL之后执行
pip freeze > requirements.txt即可得到纯净的依赖列表。
验证纯净环境
创建并激活环境后,执行conda list,正常情况下仅会显示python、pip、setuptools、wheel几个核心包,此时pip freeze的输出也应仅包含这几个包。
用户原操作步骤:
(base) conda create --name new_env1 python=3.11 (base) conda activate new_env1 (new_env1) pip freeze > requirements.txt (produces 300+ packages) (new_env1) pip freeze -l > requirements.txt (same result)
内容的提问来源于stack exchange,提问作者Ya.
相关产品推荐
相关产品推荐

