2017-08-23 12 views
2

thisページの手順に従って、MATLABがPythonモジュールでPythonコードを呼び出すようにしました。MATLABはインポートでPythonモジュールを呼び出すことができません

# mymod.py 

def search(words): 
    """Return list of words containing 'son'""" 
    newlist = [w for w in words if 'son' in w] 
    return newlist 

はその後、MATLABで私は

N = py.list({'Jones','Johnson','James'}) 
py.mymod.search(N) 

を実行し、所望の出力を得ます。しかし、私は、Pythonモジュール自体にインポートがあるときには、動作させることができません。例えば、mymod.pyに単一ラインimport numpy as npを追加するMATLABで同じラインを実行する際にエラー

Undefined variable "py" or class "py.mymod.search" 

をもたらします。どうすればこの問題を回避できますか?

+0

MATLABが実際にNumPyがインストールされている「正しい」Pythonバージョンを呼び出すことは確かですか? 'import sys;でPython実行ファイルのフルパスを確認することができます。 sys.executable' – hbaderts

答えて

2

matlabの本には、このエラーが表示された理由とそのトラブルシューティング方法の原因の一覧が表示されます。

理由:ページ1-70

    1. ページの "Pythonがインストールされていません" 1-70
    2. "Windowsプラットフォーム上のPythonの64ビット/ 32ビット版"ページの「MATLABは、Pythonを探すことができません」1-71
    3. ページの「ユーザー定義のPythonモジュールでエラーが発生しました」1-71
    4. 「PythonのモジュールではないPythonの検索パスの」ページの1-71
    5. ページ1-72の
    6. 「モジュール名の競合は、」
    7. ページ1-72
    私はあなたがそこに見ることができるようにソリューションのこのリストを作業を示唆している

    の「Pythonは間違ったモジュールにコマンドを実行しようとします」あなたのエラーのためにいくつかの理由が考えられます。そして、それがどんな情報なのかを知ることは難しいです。

  • +0

    ここで起こっていることを解決する問題はありません。動作させることと破棄するという唯一の違いは、numpyのインポートです。これがなくてもうまくいくということは、上記の可能性は問題ではないという証です –

    関連する問題