使用python定义路径

使用python定义路径,python,path,operating-system,Python,Path,Operating System,我正在使用程序GTDBtk,这是一个使用其他程序的工具包。当我使用终端运行GTDBtk时,它给了我一个错误: [2020-03-15 18:58:22] INFO: Using GTDB-Tk reference data version r89: /Users/Desktop/GTDB/gtdbtk/release89 hmmsearch is not on the system path. 我通过编写代码解决了这个问题 PATH=“/Users/monkiky/Desktop/Data/

我正在使用程序GTDBtk,这是一个使用其他程序的工具包。当我使用终端运行GTDBtk时,它给了我一个错误:

[2020-03-15 18:58:22] INFO: Using GTDB-Tk reference data version r89: /Users/Desktop/GTDB/gtdbtk/release89
hmmsearch is not on the system path.

我通过编写代码解决了这个问题

PATH=“/Users/monkiky/Desktop/Data/hmmer-3.3/src/hmmsearch:$PATH”

现在,由于我需要多次运行这个程序,我正在用Python编写一个脚本。写这段代码时,我发现了同样的错误,我不知道如何解决它

[2020-03-21 11:26:37] INFO: Using GTDB-Tk reference data version r89: /Users/monkiky/Desktop/GTDB/gtdbtk/release89
hmmsearch is not on the system path.
如何使用python定义路径?或者我做错了什么

我试过这个,但不走运:

os.system('PATH="/Users/monkiky/Desktop/Data/hmmer-3.3/src/hmmsearch:$PATH"')
以下是我填写的代码:

#Define directory
os.chdir('/Users/monkiky/Desktop/prueba/GTDBTk-1.0.1')

# We define the environment variable
os.environ['GTDBTK_DATA_PATH'] = "/Users/monkiky/Desktop/GTDB/gtdbtk/release89" 

# Add the path of prodigal (here the problem bust be)
sys.path.append("/Users/monkiky/Desktop/GTDB/GTDBTk-1.0.1/hmmsearch")


#Run the program
os.system('gtdbtk identify --genome_dir /Users/monkiky/Desktop/GTDB/input --out_dir /Users/monkiky/Desktop/GTDB/prueba')
输出

2020-03-21 14:29:09] INFO: GTDB-Tk v1.0.2
[2020-03-21 14:29:09] INFO: gtdbtk identify --genome_dir /Users/monkiky/Desktop/GTDB/input --out_dir /Users/monkiky/Desktop/GTDB/prueba
[2020-03-21 14:29:09] INFO: Using GTDB-Tk reference data version r89: /Users/monkiky/Desktop/GTDB/gtdbtk/release89
hmmsearch is not on the system path.
[2020-03-21 14:29:09] ERROR: Controlled exit resulting from early termination.
<built-in function chdir>
2020-03-21 14:29:09]信息:GTDB Tk v1.0.2
[2020-03-21 14:29:09]信息:gtdbtk识别——基因组目录/Users/monkiky/Desktop/GTDB/input——输出目录/Users/monkiky/Desktop/GTDB/prueba
[2020-03-21 14:29:09]信息:使用GTDB Tk参考数据版本r89:/Users/monkiky/Desktop/GTDB/gtdbtk/release89
hmmsearch不在系统路径上。
[2020-03-21 14:29:09]错误:提前终止导致受控退出。

如果只想将路径附加到路径,请使用

导入操作系统
path='/Users/monkiky/Desktop/Data/hmmer-3.3/src/hmmsearch'
os.environ[“PATH”]+=os.pathsep+PATH

或者,您可以:

手动将
/Users/monkiky/Desktop/Data/hmmer-3.3/src/hmmsearch
添加到您的系统环境(我们称之为
HMM\u SEARCH\u PATH
)并调用:

导入操作系统
path=os.getenv('HMM\u SEARCH\u path'))
#在任何需要的地方使用路径,例如。
打印(路径)
或者

在项目文件夹中创建一个
.env
文件并插入
HMM\u SEARCH\u PATH=/Users/monkiky/Desktop/Data/hmmer-3.3/src/hmmsearch
,然后在python脚本中:

导入操作系统
从dotenv导入加载\u dotenv
加载_dotenv()
path=os.getenv('HMM\u SEARCH\u path'))
#在任何需要的地方使用路径,例如。
打印(路径)

有关更多信息,请参阅和此。

os.system
启动一个新的shell,在该shell中执行赋值,然后该shell退出<当前进程中的代码>路径未更改。问题是OP希望对路径执行什么操作:将其添加到
路径
环境变量。抱歉。我尝试了你所有的建议,但我也犯了同样的错误。我将更改问题并添加已完成的代码