我正在使用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>
如果您只想将路径附加到path,请使用
import os
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_SEARCH_PATH
(,然后调用:
import os
path = os.getenv('HMM_SEARCH_PATH')
# Use path wherever you need, e.g.
print(path)
或者,
在项目文件夹中创建.env
文件并插入HMM_SEARCH_PATH = /Users/monkiky/Desktop/Data/hmmer-3.3/src/hmmsearch
,然后在您的python脚本中:
import os
from dotenv import load_dotenv
load_dotenv()
path = os.getenv('HMM_SEARCH_PATH')
# Use path wherever you need, e.g.
print(path)
有关更多信息,请参阅此问题和本文。