Conda不激活环境运行python脚本

这里写自定义目录标题

  • 前言
    • 1.手动激活
    • 2.安装python软件
    • 3.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.接下来就可以执行自己的脚本了,此方式不再过多介绍。
Conda不激活环境运行python脚本_第1张图片

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]))
	}

Conda不激活环境运行python脚本_第2张图片

你可能感兴趣的:(python,conda)