(/ bin / bash: python3: команда не найдена) При запуске скрипта python через системную команду в Matlab - PullRequest
0 голосов
/ 20 декабря 2018

У меня большой проект Matlab, и из-за проблемы с xlsread и Mac OS я включил переключатель Mac.Если этот переключатель включен, я хочу, чтобы Matlab выполнил скрипт python через системную команду следующим образом:

cmdStr = 'python3 osx_conversion.py'
if osxSwitch == 1
    [status,result] = system(cmdStr);
    if status ~= 0
        error('System could not run Python conversion file')
    end
else
...

Это возвращает результат:

/bin/bash: python3: command not found

Теперь, если вместо этого я использую'python osx_conversion.py', ошибка, которую я получаю, связана с использованием синтаксиса python 3, так как команда python на моем mac вызывает python 2. Любые идеи относительно того, что происходит, будут действительно оценены.

РЕДАКТИРОВАТЬ: Чтобы уточнить, если я запускаю «python3 osx_conversion.py» через терминал, он работает гладко

РЕДАКТИРОВАТЬ 2: Результат от запуска

echo $PATH

в терминале:

    /anaconda3/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin:/opt/ImageMagick/bin:/Applications/Wireshark.app/Contents/MacOS:/usr/local/go/bin

1 Ответ

0 голосов
/ 20 декабря 2018

Ваша проблема в том, что команда, запущенная Matlab, не нашла ваш интерпретатор python 3, я предполагаю, что она запускается от имени пользователя root, поэтому PATH отличается от той, что у вашего пользователя.

В основном, что вы можете сделать, это указать полный PATH для желаемого интерпретатора Python, в вашем случае это /anaconda3/bin/python3, но этот PATH может отличаться для другого пользователя.

В любом случае вы всегда можете запуститьwhereis python3 в терминале, чтобы узнать полный PATH пользовательского интерпретатора Python и использовать полный PATH внутри Matlab.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...