1. 程式人生 > 其它 >未定義的變數“py”或函式“py.command”

未定義的變數“py”或函式“py.command”

技術標籤:Python

目錄

未定義的變數“py”或函式“py.command”

Python未安裝

Windows平臺上的Python的 64 位/32 位版本

MATLAB 找不到 Python

在使用者定義的Python模組中的錯誤

Python模組不在Python搜尋路徑上

模組名稱衝突

Python嘗試在錯誤的模組中執行command


未定義的變數“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標準庫中的模組或系統上的任何第三方模組發生名稱衝突。