在使用中遇到的問題是,Spyder的代碼完成功能不支持某些編譯模塊(.pyd后綴),如OpenCV的Python模塊cv/cv2,在編寫腳本文件時,在已存在import cv&import cv2的前提下,輸入cv. 無法彈出顯示相關成員函數列表&代碼完成提示。同樣的操作在Spyder的Console窗口和IPython console窗口都能正常工作,如圖一所示,在Spyder 的 Console窗口中cv2模塊的代碼完成提示。(事實上,大多數支持Python的編輯器都存在類似問題,這是因為多數編譯器對編譯模塊的代碼完成支持不理想。)
1.找到 module_completion.py 文件,2.25及之前的版本位於Python目錄/Lib/site-packages/spyderlib/utils/路徑,2.25之后的版本位於Python目錄/Lib/site-packages/spyderlib/utils/introspection/。將cv和cv2添加到 module_completion.py 文件第274行的 mods 變量中,保存文件:
2.修改后,刪除同目錄下的 module_completion.pyc 文件,使得修改后的 module_completion.py 文件生效。
3.進入用戶目錄下的Users/用戶名/.spyder2/db,刪除目錄中的submodules文件。
4.重啟Spyder,enjoy it。
通常情況下,若需要添加其他的編譯模塊,均可按照以上的方法進行添加,盡管該方法比較不人性化。

