Jetson安装conda环境须知

一、背景

在新建 conda 环境时避免全局包(系统级、用户级包)的干扰,核心是让 conda 环境完全 “独立”,不读取外部路径的包。

二、方案

2.1 conda新创建包的方式

  1. 新建环境时添加 –no-default-packages(可选,进一步精简)
    默认情况下,conda 会安装 pip、setuptools 等基础包(必要且无害)。若想极致纯净(仅保留 Python),可添加此参数:
1
conda create -n dev python=3.10 --no-default-packages -y

⚠️ 注意:此参数会跳过 pip 等工具,需手动安装:conda install pip -y

  1. 激活环境后立即设置 “屏蔽全局包” 的环境变量
    每次激活环境后,通过 PYTHONNOUSERSITE 禁止 Python 加载用户级全局包(~/.local/lib/pythonX.X/site-packages):
1
2
3
4
# 激活环境
conda activate dev
# 禁止加载用户级全局包(仅当前终端生效)
export PYTHONNOUSERSITE=1

验证是否生效:

1
2
# 查看 Python 搜索路径,应仅包含 conda 环境路径
python -c "import sys; print('\n'.join(sys.path))"

正常输出应类似:

1
2
3
4
/home/jetson/miniforge3/envs/dev/lib/python310.zip
/home/jetson/miniforge3/envs/dev/lib/python3.10
/home/jetson/miniforge3/envs/dev/lib/python3.10/lib-dynload
/home/jetson/miniforge3/envs/dev/lib/python3.10/site-packages

2.2 永久生效:自动屏蔽全局包(推荐)

手动执行 export PYTHONNOUSERSITE=1 较繁琐,可配置为 “激活环境时自动执行”:

进入 conda 环境的配置目录:

1
2
3
mkdir -p ~/miniforge3/envs/dev/etc/conda/activate.d
# 假设环境名为 camera,替换为dev
cd ~/miniforge3/envs/dev/etc/conda/activate.d/

创建自动执行脚本:

1
2
# 新建脚本(文件名任意,如 disable_global_packages.sh)
vim disable_global_packages.sh

在脚本中添加以下内容(屏蔽用户级全局包):

1
2
3
4
5
# 禁止 Python 加载用户级 site-packages
export PYTHONNOUSERSITE=1

# 可选:清空 PYTHONPATH(防止系统级路径污染)
unset PYTHONPATH

保存退出(Ctrl+O → 回车 → Ctrl+X),并赋予执行权限:

1
chmod +x disable_global_packages.sh

此后,每次激活该环境时,会自动执行脚本,无需手动操作。