7行程式碼,徹底
最近有不少小夥伴諮詢小叮噹關於pyton第三方包匯入的問題,今天我們就來聊聊第三方包匯入那些事。 隨著對python學習的漸入臻境,越來越多的小夥伴們開始匯入自己所需的第三方包,實現各種各樣的功能。但是,他(她)們遇到了一個非常煩惱的問題! 自己用pip已經下載好的第三方包,import總是報錯,顯示沒有該moudle. pip顯示scipy模組已安裝好 但在pycharm裡,我們import匯入時,編輯器卻報錯,告訴我們沒有這個module! 這是為什麼呢? 原來,python在import匯入第三包時,會預設搜尋系統模組下的sys.path路徑。而sys.path是個列表物件,我們可通過簡單的列印語句顯示檢視我們的import匯入路徑。 而pip下載後的第三方包都統一放在lib下的site-packages資料夾下。 與我們列印出的import路徑對比,不難發現,我們的import路徑中並沒有sit-packages的路徑位置。所以,即使我們用pip下載好第三方包在本地,import的搜尋路徑中沒有這個位置,編輯器當然就會報錯。 找到問題的發生原因後,我們便可以開始解決問題了。思路就是:將第三方包的路徑新增到import的預設搜尋路徑中。而sys.path又是個列表物件,我們通過append( )方法就可實現我們的需求,到此問題便可迎刃而解! 為使大家能夠清晰地認識,小叮噹這裡用了print語句輸出了之前的路徑,大家實際操作中大可不必如此。瞭解原理即可。即使算上print語句,我們的有效程式碼也只有7行! 程式碼如下所示: 從輸出結果中我們可以看到第三方包site-packages的路徑已成功加入import的搜尋路徑。 但是當重啟編輯器時,會發現新增的路徑已消失。可見append方法只能對當前有效,退出後便會失效! 那麼,我們怎麼永久新增到sys.path路徑下? 我們可以通過新建.pth檔案來實現。 在前面程式輸出的結果中我們可以看到,D盤中我們也有一個site-packages的路徑。這是因為,小叮噹為避免檔案雜亂,將pycharm的專案沒有建在pyhton預設目錄,而是更改到了D盤的“python演練場”。 我們找到D盤--python演練場--venv---lib---site-packages資料夾,並在其中新建文字文件。 在新建的文字中,寫入我們“pip下載到的第三方檔案庫site-packages的”路徑位置。 將文字儲存後,我們將檔案改為“mypath.pth"。注意:最後,一定要將txt格式的改為pth,否則python無法識別。 之後,我們便可以”一勞永逸“地import引入pip下載的第三方包了,當然重要的是,這種方法還可以引入你自己根據你的需求寫的實用python指令碼了。我們引入scipy第三包,可以明顯地看到,編輯器已為我們自動補全了。 這裡小叮噹用的是python3.6和pycharm3.x,如果你在操作過程中遇到了問題,儘可在評論區留言。小叮噹看到後便會及時回覆你的。
相關文章
- 徹徹底底教會你使用Redux-saga(包含樣例程式碼)Redux
- 八段程式碼徹底掌握 PromisePromise
- 徹底解決程式亂碼問題
- Oracle徹底殺掉程式Oracle
- 徹底理解原碼、補碼、反碼
- 徹底搞懂小程式登入流程-附小程式和服務端程式碼服務端
- 徹底解決Oracle中文亂碼Oracle
- 【字元編碼】徹底理解字元編碼字元
- 是那行程式碼,徹底改變了程式設計師的世界?行程程式設計師
- 一文徹底吃透MyBatis原始碼!!MyBatis原始碼
- 一文徹底弄懂ArrayList原始碼原始碼
- 徹底搞懂徹底搞懂事件驅動模型 - Reactor事件模型React
- 徹底理解synchronizedsynchronized
- 徹底搞懂 RxJavaRxJava
- 徹底解決Python編碼問題Python
- 徹底搞懂 python 中文亂碼問題Python
- 筆記-runtime原始碼解析之讓你徹底瞭解底層原始碼筆記原始碼
- 徹底理解Golang MapGolang
- 徹底理解正則
- 徹底理解ReentrantLockReentrantLock
- 徹底理解volatile
- Oracle 徹底 kill sessionOracleSession
- 徹底刪除ORACLEOracle
- 徹底看懂 PBR/BRDF
- 徹底清理依賴:
- 徹底禁用Windows更新Windows
- oracle rac 12徹底刪除,徹底刪除該死的racOracle
- HashMap原始碼分析(二):看完徹底瞭解HashMapHashMap原始碼
- oracle 資料庫徹底清除目錄指令碼Oracle資料庫指令碼
- Linux從頭學06:16張結構圖,徹底理解【程式碼重定位】的底層原理Linux
- 如何徹底關閉win10防火牆 徹底禁用windows防火牆Win10防火牆Windows
- Win10如何徹底禁用小娜?徹底禁用小娜的方法Win10
- 徹底搞懂https原理HTTP
- 一張圖徹底搞定 explainAI
- 徹底弄懂 Nginx location 匹配Nginx
- 徹底理解cookie,session,tokenCookieSession
- 徹底搞懂JavaScript作用域JavaScript
- 徹底搞懂Bean載入Bean