Python-subprocess激活远程conda

简介:在一些实现远程执行任务、自动化部署、测试或远程控制台等场景下,某些需要依赖于特定的 conda 环境,如何激活是指定conda环境,是一个值得探讨学习的地方。

历史攻略:

miniconda的安装和基本使用

win10:安装miniconda和使用

centos7.6:安装python、miniconda

Python:subprocess模块

案例代码:

# -*- coding: utf-8 -*-
# time: 2024/6/8 13:29
# file: sub_conda.py
# 公众号: 玩转测试开发

import time
import subprocess


def ssh_command(command, timeout=360):
    popen = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, bufsize=1)
    out, err = popen.communicate(timeout=timeout)
    message = out + err
    print(f"{message}")
    popen.kill()
    time.sleep(0.05)
    popen.kill()
    return message


if __name__ == '__main__':
    command = "ssh  ubuntu@11.12.13.14 'source /home/ubuntu/miniconda3/bin/activate test && conda env list'"
    ssh_command(command)

免密设置请参考:

Docker容器中的SSH免密登录

运行结果:

(base) tom@LAPTO:/mnt/d/codes$ python sub_conda.py
# conda environments:
#
base                     /home/ubuntu/miniconda3
test                  *  /home/ubuntu/miniconda3/envs/test

注意事项:subprocess.Popen() 需要使用 shell=True 参数,这样可以让它执行带有管道和重定向的命令,但要小心避免使用带有用户输入的命令,因为这可能会导致安全风险(例如,遭受命令注入攻击)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值