Определите путь, используя python - PullRequest
0 голосов
/ 21 марта 2020

Я использую программу 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>

1 Ответ

0 голосов
/ 21 марта 2020

Если вы хотите просто добавить свой путь к 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) 

См. этот вопрос и эту статью для получения дополнительной информации.

...