Ошибка «Команда не найдена» при попытке выполнить двоичный файл в среде Jupyter Notebook

#python-3.x #bash #path #jupyter-notebook #binaryfiles

#python-3.x #bash #путь #jupyter-notebook #двоичные файлы

Вопрос:

Я пытаюсь выполнить двоичные файлы в ячейке Jupyter Notebook со следующими кодами. Они взяты из примерного кода, который, как было доказано, работает.

 os.system("hprep96 -M %s.d -d %s -HS %.4f -HR 0 -EQEX"%(model,dfile_out,depth))
!hspec96
!hpulse96 -D -i > file96
!f96tosac -B file96
 

Однако печатаются следующие сообщения об ошибках.

 sh: hprep96: command not found
/usr/bin/sh: hspec96: command not found
/usr/bin/sh: hpulse96: command not found
/usr/bin/sh: f96tosac: command not found
 

Я предполагаю, что ошибка заключается в том, что путь к двоичным файлам не включен в среду для Jupyter Notebook.

На самом деле, я обновил пути к этим файлам в скрипте ~/.bashrc следующим образом:

$ export PATH="/home/msseo/data1/Graduate_Study/01.MomentTensor/CPS_Herrmann/PROGRAMS.330/bin:$PATH"

Поэтому эти двоичные файлы хорошо выполняются, просто введя их в терминале. Однако я хочу выполнить их из ячейки Jupyter Notebook с помощью команд, которые я написал ранее.

Какую строку я должен добавить, чтобы решить эту проблему?

Комментарии:

1. Я временно решил эту проблему, переместив все двоичные файлы в /home/msseo/data1/Graduate_Study/01.MomentTensor/CPS_Herrmann/PROGRAMS.330/bin каталоге в текущий каталог, к которому принадлежит Jupyter Notebook. Однако я хотел бы знать, есть ли более удобный способ выполнить двоичные файлы без их перемещения.

2. Предполагая, что ваша программа на Python не изменяет ПУТЬ, я предполагаю, что к моменту вызова скрипта Python ПУТЬ уже неверен. Я предлагаю вам сделать printenv PATH это прямо перед вызовом вашей программы на Python, чтобы убедиться в этом.

3. Я не знаю среду Jupyter, но если она не выполняется из интерактивной оболочки bash, changing something in .bashrc` бессмысленно.

4. @user1934428 Вы имеете в виду print(os.environ['PATH']) ? Кажется, что он содержит пути, которые я добавил в скрипт .bashrc

5. Конечно, делать это изнутри Python тоже хорошо. Но если на данный момент ПУТЬ в порядке, программа должна быть найдена. Кстати, ваш вопрос, похоже, не связан с bash, потому что ваш os.system вызов, очевидно, не запускает bash, как вы можете видеть из формулировки сообщения об ошибке.