Python 在cmd中import模塊成功,但是在jupyter notebook中No module xxx found


  由於需要用到python中的某個庫,因此打開命令行窗口cmd,然后使用pip安裝。安裝成功后,在cmd中輸入python調出python環境,import該模塊並使用,可以正常使用。但是打開juypter notebook,import該模塊,卻顯示No module xxx found。出現這種情況的原因是juypter notebook和spyder等都是安裝Anaconda時安裝的,它們依賴的是Anaconda所配置的庫路徑,而Anaconda所配置的庫路徑沒有包含當前的python的庫路徑。import sys並且輸出sys.path,便可以看到庫路徑,如下圖所示,可以發現沒有所安裝的python的\Lib\site-packages(注:安裝的外部模塊都會安裝到該文件夾中),因此import時不會到該路徑下尋找模塊,因此導致import失敗。

  ①搜索相關解決方法,我嘗試了一種方法是直接在sys.path這個列表中加入(append)我的python路徑和python庫路徑,分別是:E:\Python\Python36和E:\Python\Python36\Lib\site-packages(注意:這個是我安裝的python的路徑,你的以你安裝python的路徑為准)。使用該方法后,再次輸出sys.path,可以看到這兩條路徑被加入,而且import之前不能工作的模塊,此時也可以正常使用了。但是這種解決方案沒有永久性,當退出之后重新打開該文件運行時,則又會import失敗,輸出sys.path,發現之前加入的兩條路徑也不存在了。

  ②再次搜尋解決方法,另一種方法是在環境變量中添加PYTHONPATH變量,然后將上述的python路徑和python庫路徑(E:\Python\Python36和E:\Python\Python36\Lib\site-packages)作為變量值,如下圖所示。

(環境變量添加:右鍵"此(我的)電腦"->點擊"屬性"->點擊左側“高級系統設置"->點擊右下角"環境變量")

  進行以上操作后,在jupyter notebook隨便打開或者新建文件,import之前不能工作的模塊,都可以正常使用了。輸出顯示sys.path可以看到,兩條路徑已經被加入了。而且該方法具有永久性。

環境變量后話:

  之前我對環境變量沒有太多理解,后來在多次接觸之后對它有了一些更深的認識,這也使得在遇到windows的某些環境依賴問題時可以更快地解決。大多數軟件安裝時都會將啟動軟件的.exe所在的bin文件夾路徑添加到環境變量中,從而在啟動軟件時系統能從環境變量中找到該軟件的.exe進行啟動。

  在我前面安裝python時出現了一個問題,就是雖然安裝好了python,但是在cmd中輸入python卻顯示python不是可用的命令,即無法啟動python。於是根據以往的經驗,我查看了環境變量,沒有找到python.exe的路徑,於是我把該路徑添加到環境變量中。再到cmd中輸入python,此時就可以正常調出python環境了。之后我又想通過pip安裝某些模塊時,在cmd中輸入pip install xxx,顯示pip不是可用的命令。其實道理類似,也是由於pip.exe的路徑沒有添加到環境變量中。pip.exe位於所安裝的python文件夾下的Scripts中,你可以打開看看是否有pip.exe在里面,若沒有,則即使添加了路徑到環境變量中也無法正常工作的。將Scripts的路徑添加到環境變量中后,在cmd中pip也便可以正常運行了。

  通常來說,安裝python的時候會自動將對應的這兩個路徑添加到環境變量中的,而如果你和我一樣不幸或者說安裝時的一些選擇沒選好導致出現以上問題,那么通過添加環境變量可以很好地解決問題。

:) PS:這是我寫的最快的一篇博客。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM