1. 程式人生 > 程式設計 >解決pycharm中opencv-python匯入cv2後無法自動補全的問題(不用作任何檔案上的修改)

解決pycharm中opencv-python匯入cv2後無法自動補全的問題(不用作任何檔案上的修改)

發現問題

當我用pip安裝好opencv-pyton後,我激動得在python專案中匯入cv2
就像這樣:

import cv2 as cv

but…
碼程式碼時竟然沒有自動補全!!!這我還能忍,可是CTRL+左鍵竟然不能看原始碼!!!!!!就像這樣:

在這裡插入圖片描述

這我就受不了了。於是開始找解決方法

解決問題

查詢解決方法,
有的說要將cv2.cp36-win_amd64.pyd檔案挪到site-packages下;
有的說要修改_init_.py檔案
有的說…

直到我看到https://segmentfault.com/q/1010000008971601這篇文章

在這裡插入圖片描述

於是突然頓悟!

在這裡插入圖片描述

原來真正的實現opencv功能的cv2模組是在cv2/data資料夾下

而cv2下的_init_.py檔案內描述的也很清楚

import importlib
from .cv2 import *
from .data import *

# wildcard import above does not import "private" variables like __version__
# this makes them available
globals().update(importlib.import_module('cv2.cv2').__dict__)

它的目的就是將cv2/data/下的真正的cv2功能模組放在cv2目錄下,也就意味著
變成了這種形式:cv2/cv2

所以你在匯入cv2模組兒時要這樣做

在這裡插入圖片描述

正確的做法

import cv2.cv2 as cv

自動提示的功能出現了。

在這裡插入圖片描述

CTRL+滑鼠左鍵檢視原始碼的功能也回來了。

在這裡插入圖片描述

針對一些疑惑進行可能的解答,也不知道對不對。

由於我之前升級過IDE,所以這個專案是我從外部匯入的,首先我為這個專案選擇python直譯器路徑,然後就會出現下圖的進度條。(這個專案在構建之初,用virtualenv建立了一個獨立的環境,所以python直譯器選擇的是專案路徑下的。)

庫檔案在剛剛被新增到專案中時,pycharm會針對這個庫檔案,構建索引(building index)。然後會顯示一個進度條,在進度條走完之前,使用這個庫中的方法確實會出現無法自動提示的問題。

在這裡插入圖片描述

等待進度條走完,也就是python環境中的庫都被構建索引,然後再使用庫中的方法,自動提示就有了。

這是我新建的.py檔案,然後進行的測試

在這裡插入圖片描述

總結

到此這篇關於解決pycharm中opencv-python匯入cv2後無法自動補全的問題(不用作任何檔案上的修改)的文章就介紹到這了,更多相關pycharm opencv-python匯入cv2無法自動補全內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!