You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ubuntu 20.04虚拟机中通过Python自动激活Conda

在Ubuntu 20.04虚拟机中用Python自动激活Conda环境

前提准备

确保系统已安装Anaconda/Miniconda,且Conda初始化脚本已配置(安装时通常自动写入~/.bashrc)。

方法一:通过subprocess调用Shell命令激活

直接在Python脚本中调用bash并执行conda激活逻辑,适用于需要完整shell环境的场景:

import subprocess

# 替换为你的目标Conda环境名称
env_name = "your_env_name"

# 构造命令:先加载conda初始化脚本,再激活环境,最后执行后续任务
cmd = f"""
source ~/miniconda3/etc/profile.d/conda.sh  # 若安装Anaconda,路径改为~/anaconda3/etc/profile.d/conda.sh
conda activate {env_name}
# 此处添加激活环境后需执行的命令,例如运行目标Python脚本
python your_target_script.py
"""

# 用bash执行命令,check=True会在命令执行失败时抛出异常
subprocess.run(["bash", "-c", cmd], check=True)

方法二:直接设置环境变量切换环境

Conda激活本质是修改系统环境变量,可直接获取目标环境路径并调整变量,无需依赖shell的source命令:

import os
import subprocess

env_name = "your_env_name"

# 目标环境的安装路径,根据实际安装位置调整
env_path = os.path.expanduser(f"~/miniconda3/envs/{env_name}")

# 更新环境变量,优先使用目标环境的二进制文件
os.environ["PATH"] = f"{env_path}/bin:{os.environ['PATH']}"
os.environ["CONDA_DEFAULT_ENV"] = env_name
os.environ["CONDA_PREFIX"] = env_path

# 验证环境切换结果
result = subprocess.run(["python", "--version"], capture_output=True, text=True)
print(f"当前Python版本(环境内): {result.stdout.strip()}")

方法三:结合Shebang与包装脚本实现一键运行

若需直接执行Python脚本时自动激活环境,可编写bash包装脚本:

  1. 编写目标Python脚本task.py:
#!/usr/bin/env python
import os

print(f"当前激活的Conda环境: {os.environ.get('CONDA_DEFAULT_ENV', '未激活')}")
# 此处添加业务逻辑代码
  1. 创建bash包装脚本run_task.sh:
#!/bin/bash
source ~/miniconda3/etc/profile.d/conda.sh
conda activate your_env_name
python task.py
  1. 赋予脚本执行权限:
chmod +x run_task.sh
  1. 运行脚本:
./run_task.sh

注意事项

  • 务必确认Conda初始化脚本路径正确,不同安装版本(Anaconda/Miniconda)路径有差异。
  • 非交互式shell环境(如定时任务crontab)中,必须显式加载conda初始化脚本,否则conda activate命令会失效。
  • 避免在单个脚本中多次切换Conda环境,易导致环境变量混乱,建议一个脚本对应一个目标环境。

内容的提问来源于stack exchange,提问作者PRAJAKTA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:10:25