未定義的變數“py”或函式“py.command”
技術標籤:Python
目錄
Windows平臺上的Python的 64 位/32 位版本
未定義的變數“py”或函式“py.command
”
在命令列視窗中鍵入py.command時,MATLAB®會自動載入Python®。如果MATLAB顯示以下訊息,則表示載入失敗。
Undefined variable "py" or function "py.command"
此頁面有助於對載入失敗進行故障排除。
Python未安裝
計算機上未安裝受支援的Python版本。請參閱您的 MATLAB 版本的,然後從https://www.python.org/downloads/
下載並安裝Python。要在 Microsoft®Windows®系統上安裝64位MATLAB 的 2.7 版本,請選擇64位Python版本,稱為Windows x86-64 MSI installer。在Linux®和Mac系統上,如果從原始檔編譯Python,請使用--enable-shared
選項對該編譯進行配置。
Windows平臺上的Python的 64 位/32 位版本
64位版本的MATLAB 安裝了32 位版本的Python。必須安裝Python的64位版本。
MATLAB 找不到 Python
Python位於非標準位置。要提供Python可執行檔案的路徑,請使用pyeny函式。例如:
pyenv('Version','C:\Users\uname\WinPython-64bit-3..2.1\python-3..2.amd64\python.exe')
在Windows系統上,在Windows登錄檔中找不到Python。如果下載了Python直譯器,但沒有在Windows登錄檔中註冊,請使用以下命令指定Python 位置:
pyenv('Version','executable')
在使用者定義的Python模組中的錯誤
使用者定義的Python模組發生錯誤。要測試模組mymod是否包含錯誤,請鍵入:
py.importlib.import_module('mymod')
如果Python檢測到該模組中有錯誤,則MATLAB會顯示一條Python錯誤訊息。也可以在Python命令提示符下執行等效命令,以獲取該 Python 錯誤訊息。改正錯誤後,要訪問更新後的模組,請重新啟動MATLAB,並將其新增到搜尋路徑中。
Python模組不在Python搜尋路徑上
如果command是有效的Python命令,請確保Python模組在Python搜尋路徑上。要測試模組mymod是否在搜尋路徑上,請鍵入:
py.importlib.import_module('mymod')
如果Python找不到該模組,MATLAB將顯示一條Python錯誤訊息。
要將資料夾modpath中的mymod新增到路徑,請鍵入:
P = py.sys.path;
if count(P,'modpath') == 0
insert(P,int32(0),'modpath');
end
Python搜尋路徑與MATLAB當前會話中載入的Python直譯器相關聯。可以在MATLAB中修改搜尋路徑,但如果在MATLAB之外執行直譯器的其他例項,則修改將不會保留。
模組名稱衝突
如果呼叫的Python模組與標準庫中的模組或系統上安裝的任何第三方模組同名,則MATLAB可能會載入錯誤的模組。
Python嘗試在錯誤的模組中執行command
如果command在使用者定義的模組中,請確保該模組不與Python標準庫中的模組或系統上的任何第三方模組發生名稱衝突。