在PyDev(Eclipse)中或通过python激活conda环境

af7jpaap  于 2023-10-18  发布在  Eclipse
关注(0)|答案(1)|浏览(167)

我使用Eclipse作为我的Python环境。我正在使用一个anaconda环境来安装我所有的python解释器和其他软件。我已经成功地将PyDev指向了正确的解释器(miniconda环境解释器,而不是系统解释器)。然而,我正在使用的一个函数在python中打开了一个命令行,这是在错误的环境中(我的系统环境,而不是我的miniconda环境)。我正在寻找两种解决方案之一:
1.让PyDev使用Anaconda环境的方法,即使对于cmd行调用也是如此
1.让Python脚本进入Anaconda环境的方法。
为了使它更复杂,我对cmd行函数的控制有限,因此不能在How do you activate an Anaconda environment within a Python Script?Activate a Conda Environment in Python Script等问题中使用建议
以下是我到目前为止使用的代码:

from Bio.Blast.Applications import NcbiblastnCommandline
from io import StringIO
import os
cline = NcbiblastnCommandline( query="sequence.fa", 
  db="contigs.fa", 
  evalue=0.01, 
  outfmt=5
  )
stdout, stderr = cline()
fp = StringIO( stdout )
blast_records = [r for r in NCBIXML.parse( fp )]

错误消息如下(因为它只安装在我的miniconda环境中)

Bio.Application.ApplicationError: Non-zero return code 127 from 'blastn -outfmt 5 -query sequence.fa -db contigs.fa -evalue 0.01', message '/bin/sh: 1: blastn: not found'

我的问题是如上所述-我正在寻找两个解决方案之一:
1.让PyDev使用Anaconda环境的方法,即使对于cmd行调用也是如此
1.让Python脚本进入Anaconda环境的方法。

ax6ht2ek

ax6ht2ek1#

通常在PyDev中运行时,conda env会被正确激活,如果你已经配置了这样做的话。
你能帮我查一下那里有没有托运吗?(见下面的截图)
通过激活环境来检查PATH变量是否正确,以及您想要启动的内容是否存在(也有可能您用于创建命令行的内容并没有像预期的那样真正传递环境)。

相关问题