Testing if a Python executable was detected, gracefully

Hello everybody,
I'm writing unit tests for code that calls some Python scripts. Early on, I would like to test whether MATLAB can find a valid Python executable. Naturally, the function to use in this case is `pyversion` - however, the documentation does not specify the expected outputs in case an executable is not found. I'm assuming these are empty strings/char arrays, but have no way of verifying that.
Another approach that would likely work is just trying to use the interface (with a fallback):
try
py.None; % or many other constants/functions that work when python is set up correctly
% ... it works
catch
% ... it doesn't work
end
However, this makes me cringe a little, since I'd rather avoid `try/catch` if there's an `if/else` that can achieve the same.
Can you please suggest a graceful non-windows-specific way to test if the current instance of MATLAB is able to interface with Python?

3 件のコメント

Adam
Adam 2017 年 8 月 24 日
編集済み: Adam 2017 年 8 月 24 日
>> stuff = pyversion
stuff =
0×0 empty char array
This seems to work fine to test an ampty string.
Dev-iL
Dev-iL 2017 年 8 月 24 日
Hi Adam - thank you for trying that! Which OS+MATLAB release did you get this on?
Adam
Adam 2017 年 8 月 24 日
Windows 10 R2017a

サインインしてコメントする。

回答 (1 件)

Fangjun Jiang
Fangjun Jiang 2017 年 8 月 24 日

0 投票

Did you check "doc pyversion"?
The syntax is there:
[version, executable, isloaded] = pyversion

1 件のコメント

Dev-iL
Dev-iL 2017 年 8 月 24 日
Of course I checked it - it is also mentioned in the question.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

製品

質問済み:

2017 年 8 月 24 日

コメント済み:

2017 年 8 月 24 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by