Conda不激活环境运行python脚本

文章介绍了在使用Miniconda时遇到的环境未激活问题,以及三种解决方案:手动激活环境、安装独立Python软件和通过修改PowerShell配置实现自动激活。重点推荐了通过PowerShell自动激活环境的方法,包括condainitpowershell、设置执行策略和重启PowerShell的步骤。最后,展示了使用Golang启动PowerShell执行脚本的代码示例。
部署运行你感兴趣的模型镜像

前言

电脑上安装了Miniconda的软件,使用其自带的python解释器执行脚本,安装包也是安装在指定环境下,但运行python执行器时会出现

warning:
This Python interpreter is in a conda environment, but the environment has
not been activated.  Libraries may fail to load.  To activate this environment
please see https://conda.io/activation。

此报警表示python装在conda的环境,此时需要指定使用conda的那个环境并激活才可以使用该路径下的包,直接运行python无法加载包。网上查找相关资料有三种方式可以解决此问题。

  1. 手动单次激活
  2. 单独安装python软件
  3. 修改powerShell,自动激活环境

1.手动激活

手动激活需要每次在运行python脚本之前,先激活环境,这也是conda官网介绍的方式,缺点就是每次需要激活比较麻烦。激活指令"conda activate (myenv)",不输入自己配置的环境名的话则激活系统默认环境base.接下来就可以执行自己的脚本了,此方式不再过多介绍。
在这里插入图片描述

2.安装python软件

此方式通过另外安装python软件和需要的包,并在环境变量中将python软件的路径放在conda的路径之前,这样再用python执行脚本时就会优先使用python软件而不是conda,也就不存在环境激活的问题。
但这种方式违背了安装miniconda简易方便的初衷,如果确实有安装python软件的需求,也可通过此方式进行配置,网上资料较多,不再介绍。

3.PowerShell自动激活环境

此方式是比较推荐,原理是修改powerShell的配置文件,当启动powershell时可自动激活conda的环境。
我的需求是go语言编写一个小软件,可以自动运行python的脚本,电脑上只有conda的环境。
首先尝试通过go运行cmd控制台,先执行"conda active"指令,再执行"python main.py"运行脚本程序。这种方式试了很多次没有成功,可能是没有找到正确的方法。
然后在网上找到了通过PowerShell自动激活环境的方式,参考链接【报错记录】powershell自动激活conda环境
第一步:powershell运行代码conda init powershell
第二步:重新以管理员身份运行Set-ExecutionPolicy RemoteSigned
第三步:重启powershell,显示加载个人配置用时***,即表示修改成功
按照博主的方式确实可以在不激活环境的情况下执行脚本,下面就是通过程序启动powershell执行脚本就行。下面为代码,使用的是golang的"github.com/CodyGuo/win"包。

cmd := "powershell /c start python " + sourceConfig.PythonEnv.Path + "\\main.py"
	lpCmdLine := win.StringToBytePtr(cmd)
	ret := win.WinExec(lpCmdLine, win.SW_SHOW)
	if ret <= 31 {
		fmt.Println("进程启动失败", errors.New(winExecError[ret]))
	}

在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值