1. 程式人生 > >關於pip安裝第三方庫,但pycharm中卻無法識別的問題;以及pycharm安裝第三方庫的方法解析

關於pip安裝第三方庫,但pycharm中卻無法識別的問題;以及pycharm安裝第三方庫的方法解析

問題具體描述:

  在cmd控制檯 pip install xxxx 後並顯示安裝成功後,並且嘗試用cmd 的python 中import xxxx ,沒有顯示異常,說明這個庫是安裝成功了的。(這裡以安裝 virtualenv 為例:)

但是在pycharm 中導庫時卻出現了問題,會顯示該模組不存在!!!(即在一個專案檔案中,import一個未安裝的地三方庫檔案,Pycharm會顯示波浪線,即表示此庫未安裝。)

那怎麼解呢?下面就來簡單分析一下。

    之前有問老師“這是怎麼回事?”老師說這是pycharm這個軟體的bug……然後就沒有然後了。那要用這個庫怎麼辦?於是有了這個方法:

方法一:下載第三方庫(即把之前下的庫作廢,這裡重新再下一次……)

1.點選選單欄File,選擇Settings。

2.選中當前專案,然後點選右邊“+”,新增第三方庫

3.(1).搜尋欄,搜尋所需庫。(2).檢視該庫的當前最新版本。(3).如果有需要下載所需版本(因為有些庫之間版本要相互匹配的……)(4).點選下載按鈕下載

下載成功:

4.回到編輯頁面,可以看到,沒有異常了,表明已成功匯入。

注:這個可以說是解決了“pip下載成功,pycharm識別不了的問題”,而且這也是一個完整的pycharm安裝第三方庫的方法。

但是如果我說不喜歡用這種方法,就要堅持用 pip 呢?那就看下下面你的方法:

方法二:堅持用pip的方法安裝第三方庫

1.這裡我就新建一個專案:new_project,裡面新建一個檔案:new_file ;再次導庫,na ,如你所見,又出現紅色波浪線了,還是識別不了!!!那怎麼辦呢?往下看:

2.點選選單欄File,選擇Settings(和上面一樣):會發現這裡的依賴庫,空空如也……(奇怪嗎?我這前下好的virtualenv 庫呢?)

3.接下里看下這個:project  interpreter(專案直譯器,如果不知道直譯器是啥意思,那我建議:出門左轉找度娘(百度),出門右轉找哥哥(谷歌))。

       這裡有兩個直譯器(為什麼下面再詳解),一個是該專案目錄下的,另一個是python安裝目錄下的(注:我的python安裝路徑為:G:\python-3.7.1),新建專案,好像預設是用該專案目錄下的直譯器的(如果哪位大佬知道可以改這個預設,請留言告訴我,謝謝),我們應該把這個改成python安裝目錄下的直譯器。

4.改完後:一大波之前下載過的第三方庫全出來了,(注意看最後一個是剛下載的庫virtualenv ),OK,問題完美解決!!!

5.那為什麼要這樣呢?我們一起來具體分析下:這就涉及到pip install 安裝路徑問題 (見下文……)

pip install 安裝路徑問題

1.注:我的python安裝路徑為:G:\python-3.7.1,而“python.exe”(python直譯器)檔案也在該目錄下

2. windows下python的pip install 安裝路徑為:G:\python-3.7.1\Lib\site-packages,這裡面放的都是下載的第三方庫。(可以看到最後面兩個,就是我剛下載的庫virtualenv)

3.(1).接下來看下:專案路徑:G:\Workspaces\python\new_project

(2).而新建專案時,pycharm會在該專案裡面新建一個直譯器(現在應該知道上面為什麼會有兩個直譯器了吧,就是這個原因!!!),該直譯器路徑:G:\Workspaces\python\new_project\venv\Scripts

(3.)而在 G:\Workspaces\python\new_project\venv\Lib\site-packages 路徑下同樣是放第三方庫的!!

4.那麼問題來了,這有“兩個直譯器,兩個第三方庫”,具體是要用那個呢?

   這個是遵守“就近原則”的!

即:python安裝目錄直譯器就用該目錄下的庫,專案的直譯器就用專案裡面的庫!

5.(1)回到之前的問題:“pip成功,pycharm識別不了”,這就是因為新建專案預設直譯器是用“專案的直譯器”的,但是pip安裝的第三方庫是在python安裝目錄下,所以會識別不了。

     (2)在(1)的基礎上我們使用方法一安裝第三方庫,也就是把第三方庫下載到專案目錄下的第三方庫存放目錄下(即:\venv\Lib\site-packages),所以它就可以識別了(但是其實這裡下載了兩個同樣的第三方庫了,只是存放路徑不同罷了。)

      (3)之前提到的第二種方法,就是修改預設直譯器為“python安裝目錄直譯器”,這樣它就可以識別pip下載的庫了。(個人比較喜歡方法二,不解釋……)

OK,這個問題因該算是解決了,如果有大佬發現有錯了,可以留言指出,先謝過了!