【Python】Python环境配置保姆教程(Anaconda、Jupyter、GPU环境)!
作者:吳永強,東北大學,Datawhale團隊成員
1. 寫在前面
搞算法的同學也都明白,一個比較完美的python環境是多么的重要。這篇文章打算把一些必備的python環境配置過程記錄下來,這樣不管是新到了公司實習或者就職,還是新換了電腦,都可以借鑒這篇快速把環境搭建起來啦 😉
由于我也是重裝了系統,所以算是從0開始搭建python環境,這次從anaconda安裝開始, 然后到cuda的相關安裝配置,再到cudnn的安裝配置,然后從anaconda中建立虛擬tensorflow和pytorch的虛擬環境,再各自的虛擬環境里面安裝jupyter notebook并完成配置,安裝tensorflow的GPU版本和pytorch的GPU版本。這一整套下來,在自己機子上做一些簡單的模型實驗就沒有問題了。
雖然這套流程是目前是在Windows上做的,但具有普適性,在Linux上也是一樣的道理,只不過有些地方的操作可能不一樣,原理都是一樣的。
內容包括:
Anaconda的安裝與常用命令小總
Jupyter的安裝與相關配置
CUDA與Cudnn的安裝(GPU支持必備)
建立tf虛擬環境并安裝tf2.0GPU版本
建立pytorch虛擬環境并安裝pytorchGPU版本
Ok, let’s go!
2. Anaconda的安裝與常用命令
Anaconda是為方便使用Python而建立的軟件包,其包含250多個工具包,多版本的Python解釋器和強大的虛擬環境工具,所以Anaconda是Python的全家桶。Anaconda可以使安裝,運行和升級環境變得更簡單,所以初步學習Python,這一個就足夠了。
Windows下的Anaconda安裝,是所謂的傻瓜式安裝,Linux下面的安裝,可以參考我之前整理的(https://zhongqiang.blog.csdn.net/article/details/112376293)。
Anaconda官網下載安裝包
下載之后,點擊Anaconda3-2019.07-windwos-x86_64.exe這個安裝文件進行安裝,選擇路徑,勾選加入環境變量,等待安裝完成即可(這些和普通軟件安裝一樣,一路回車操作),
這里面一定注意,不要把anaconda裝到C盤。因為你后面會有好多個虛擬環境,安裝很多包;另外,建議把conda命令加入到環境變量里面去。
驗證安裝成功:打開命令行,輸入conda,回車。看是否能進入conda環境。
這個安裝比較簡單,不過多整理,下面是常用的命令,這些記好了之后,就能比較輕松的用anaconda管理虛擬環境,管理相關包了。打開命令行,輸入activate, 此時會進入一個root的默認虛擬環境, 如下:
這個是一個默認的虛擬環境,如果不想建其他環境,比較省事的方法就是把所有用到的包全安裝到這里面,打造一個萬能環境,所以下面先整理關于包管理的命令
在一個虛擬環境里面,掌握這幾個常用的命令即可,上面是比較省事的方法,只有一個環境,但我不太習慣這樣做,我一般喜歡建立多個虛擬環境,在每個虛擬環境下安裝特定的包去完成相應的實驗,因為有的項目可能需要python2,有的需要python3,有的可能是tf項目,有的可能是pytorch項目。這時候,用到的包會很不一致,所以,分類管理也是一個不錯的思路。那么下面就是管理環境常用的命令:
#?查看已經有的虛擬環境?常用 conda?env?list#?新建虛擬環境?可以指定python版本和一些包的版本 conda?create?-n?env_names?package_names???#?conda?create?-n?tfenv?python=3.7#?進入虛擬環境,這時候面臨著對一些包的操作,就是上面包的相關命令了 activate?tfenv#?離開虛擬環境 deactivate#?刪除虛擬環境 conda?env?remove?-n?env_name這里單獨拎出一個東西來,叫做共享環境,這個其實是非常有用的,它能讓其他人安裝項目中使用的所有包,并確保這些包的版本正確。比如開發了一個系統,讓別人來部署,但其他人可能不知道用的哪個python版本,哪些包等,盲目安裝又可能由于版本原因出現問題,所以共享環境就比發揮威力了。怎么用?
#?將當前環境下安裝的包保存為YAML文件 conda?env?export?>?environment.yaml此時在當前目錄下就會發現一個導出的環境文件:
在GitHub上共享代碼時,我們往往會看到這樣的操作,一般人家都會給出創建環境的文件,這時候,我們git clone下項目之后,依賴這個文件就能輕松安裝依賴項。那么導出的環境文件如何使用呢?
如果不用conda,而是用pip的時候,可以導出一個txt文件,然后安裝:
pip?freeze?>?requirements.txt??#?導出文件#?然后將該文件包含在項目的代碼庫中,其他項目成員即使在他的電腦上沒有安裝conda也可以使用該文件來安裝和我一樣的開發環境 pip?install?-r?/path/requirements.txt關于anaconda,就整理這么多,應該是夠用啦,后續如果有新大陸,還會再補充。
3. Jupyter的安裝與相關配置
關于jupyter, 在安裝了anaconda, 默認的root環境下會有jupyter notebook的,但是新創建了虛擬環境之后,我們還需要重新安裝jupyter notebook。命令很簡單:
pip?install?jupyter?notebook安裝jupyter很簡單,這里想整理一個事情,就是修改默認的工作空間,在Windows上使用jupyter notebook不像Linux,Linux是在哪個目錄下啟動,就會默認哪個目錄為工作空間,但是Windows中不是這樣,那么怎么修改默認工作空間呢?
這個一般是修改jupyter的配置文件,如果沒有,就打開命令行,通過下面命令生成:
jupyter?notebook?--generate-config此時會在C盤user下面的.jupyter目錄下面產生一個jupyter_notebook_config.py的文件:
用Notepad++打開jupyter_notebook_config.py,找到c.Notebook,建立你的新工作路徑,取消注釋,c前面的#要去掉。
點擊保存,這下就修該好了路徑,cmd,輸入jupyter notebook,你就發現你的路徑已更改
這樣一般是能夠修改路徑的,如果還沒有,搜一下添加下環境變量,再修改下快捷方式。
修改配置文件,不僅可以修改默認工作空間,還能修改默認啟動瀏覽器,想到想用的瀏覽器路徑,然后打開jupyter_notebook_config.py 找到App.browser = '',在這行下面添加以下三行代碼:
import?webbrowser webbrowser.register("chrome",None,webbrowser.GenericBrowser(u"C:\ProgramFiles?(x86)\Google\Chrome\Application\chrome.exe")) c.NotebookApp.browser?=?'chrome'此時就修改了jupyter使用的默認瀏覽器。
在這里插入圖片描述關于jupyter的配置就整理這么多,但是原生的jupyter可能不是很好用,此時可以安裝一些擴展功能:
conda?install?-c?conda-forge?jupyter_contrib_nbextensions此時,打開jupyter就會有一些擴展功能:
這個還是非常強大的,可以對各種單元格加一些騷操作等。
另外,這里也記錄一個我比較喜歡的jupyter一個主題:
pip?install?jupyterthemes#?一個不錯的主題 jt?-t?monokai?-f?fira?-fs?13?-cellw?90%?-ofs?11?-dfs?11?-T?-N下面整理些jupyter單元格操作的快捷鍵:
執行當前cell,并自動跳到下一個cell:Shift Enter 執行當前cell,執行后不自動調轉到下一個cell:Ctrl-Enter 是當前的cell進入編輯模式:Enter 退出當前cell的編輯模式:Esc 刪除當前的cell:雙D 進入下一個cell:雙A (前面)或 Alt+Enter(后面)為當前的cell加入line number:單L 將當前的cell轉化為具有一級標題的maskdown:單1 將當前的cell轉化為具有二級標題的maskdown:單2 將當前的cell轉化為具有三級標題的maskdown:單3為一行或者多行添加/取消注釋:Crtl / 撤銷對某個cell的刪除:z 瀏覽器的各個Tab之間切換:Crtl PgUp和Crtl PgDn 快速跳轉到首個cell:Crtl Home 快速跳轉到最后一個cell:Crtl Endctrl?+???????????#注釋 shift?+?tab??????#?查詢函數的注解#?jupyter?將本地.py文件導入 %load?test.py?#test.py是當前路徑下的一個python文件#?運行python文件 %run?file.py !python?myfile.py4. Cuda和Cudnn的安裝
CUDA是一個并行運算的一個計算平臺,而CuDNN是在上面的一個深度神經網絡的GPU加速庫。如果想用TensorFlow或者pytorch的GPU版本,這兩個是必須要安裝的。但前提,機子內得有顯卡,且是NVIDIA的。
4.1 Cuda安裝
下載CUDA,這個是cuda-10.0的版本,如果安裝別的版本,也可以在這里找。
鏈接:https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
下載完成后,打開下載的驅動, 開始安裝。這里選擇自定義安裝:
自定義安裝這里可以進行一些設置,否則有可能會導致安裝失敗,首先組件這里取勾GeForce Experience,
然后, 我這里安裝的時候,必須Visual Studio Integration也需要取消勾選。
點開Driver comonents,Display Driver這一行,前面顯示的是Cuda本身包含的驅動版本是411.31
如果你電腦目前安裝的驅動版本號新于Cuda本身自帶的驅動版本號,那一定要把這個勾去掉。否則會安裝失敗(相同的話,就不用去取勾了)
接下來就等他安裝完成即可。
結束之后, 怎么看是否成功了呢?打開下面這個路徑,查看nvcc.exe,有這個說明CuDA安裝成功。
打開此文件夾,查看有沒有cuti64_100.dll
有這個cuti64_100.dll就說明CUPT1已成功。
4.2 Cudnn安裝
同樣的,來官網: https://developer.nvidia.com/rdp/cudnn-download, 選擇Cudnn for CUDA10.0, 這個需要登錄, 注冊個郵箱或者用微信登錄即可。
下載下來之后,解壓cuDNN:
將解壓后文件復制到CUDA文件夾下
接下來,要配置環境變量,
在系統環境變量中找到path
當安裝完Cuda的時候,會自動的cuda的bin目錄以及libnvvp目錄加入到環境變量中,但是并沒有加CUPA和Cudnn的路徑,我們需要把這倆加入進來,這樣,在使用TensorFlow的時候,才不會報錯。
Cudnn和Cupta的路徑缺一不可,第三個不用管,安裝anaconda的時候,會自動加入。
測試cuda, 打開命令行, 輸入nvcc \-V
這里會顯示版本。
5. 建立tf虛擬環境并安裝tf2.0GPU版本
這里主要是tf2.0GPU版本的安裝, 有了上面的鋪墊,這里會變得非常簡單。
首先,先建立一個tfenv的虛擬環境:
conda?create?-n?tfenv?python=3.7此時,我這里竟然報了一個錯誤:
CondaHTTPError:?HTTP?000?CONNECTION?FAILED?for?url?<https://mirrors.tuna.ts這個我一開始以為是我anaconda換了安裝目錄導致的,但經過查閱資料,應該是源的問題,anaconda換源后無法創建新的虛擬環境。我的解決辦法:
找到這個.condarc文件,這個在我的C:\Users\ZhongqiangWu目錄下面,把https改成了http就好了。
這樣就能創建出tfenv的虛擬環境,然后激活activate tfenv,進入環境。
//?安裝TensorFlow-gpu pip?install?tensorflow-gpu=2.0.0-beta0此時等待下載,進行安裝即可。安裝完畢之后,測試是否安裝成功。
在當前環境下,輸入python進入環境,然后:
import?tensorflow?as?tf print(tf.test.is_gpu_available())???//?如果輸出True,說明安裝成功但在我這里,導入TensorFlow的時候,報了一個錯誤:
ImportError:?Could?not?find?'cudart64_100.dll' TensorFlow?requires?that?this?DLL?be?installed?in?a?directory?that?is?named?in?your?%PATH%?environment?variable這個通過查資料,大部分得出的結論是這篇文章說的那樣, 即cuda版本的問題, 這里會發現100,這其實意味著cuda要用10.0版本的,因為安裝完cuda的時候,會在cuda的bin目錄下面有這么一個dll文件:
也就是TensorFlow在導入的時候,會去找有沒有這樣的一個文件, 當然我這里tf2.0找的是10.0的這個,可能有的報錯說找不到101.dll或者102.dll這種,這顯然是cuda版本不匹配,要卸載掉當前的cuda, 重新安裝對應版本的,或者卸載掉當前版本的tf,重新安裝個別的版本的tf。但有種做法不提倡,有的竟然硬性的把這里的100.dll修改名字,改成101.dll這樣,這叫投機取巧,并不是在解決問題。
我當時就非常納悶, 我這里明明有這個文件,并且我也把這個bin目錄加入到了環境變量里面,為啥還會報上面的這個找不到這個文件的錯誤呢?其實是費了一些時間的,網上也沒找到好的辦法,最后,我想到,可能是因為我anaconda啟動的原因:
我anaconda這次安裝到了D盤里面,然后依然是借助Anaconda Prompt啟動了命令行,然后進入的虛擬環境。此時,我再想一個問題,我在虛擬環境里面輸入python,然后import tensorflow的時候,此時tensorflow去找依賴的時候,是去哪里找呢?
怎么保證它這里是找的環境變量里面的配置呢?好像并沒有進行設置,所以我猜測,它這里找dll的時候,可能是D:\Anaconda3\envs\tfenv\Library\bin目錄下去找相關的dll文件,如果找不到,可能不會自動的去總的環境變量里面找,就直接報錯了。
這個啟發來自于,如果我們通過anaconda3自動安裝cuda和Cudnn的時候,此時cudart64_100.dll是在D:\Anaconda3\envs\tfenv\Library\bin目錄下的。而上面我們并沒有通過anaconda3安裝這倆哥們,而是手動安裝的,那么在anaconda 自己的命令行里面可能找不到。
所以關于這個問題,我最終的解決辦法,就是不用anaconda prompt啟動命令行進虛擬環境,而是直接cmd打開系統的命令行,然后直接輸入activate,進入root的環境,然后activate tfenv進入到虛擬環境,此時再運行測試,發現成功。這個應該是走環境變量里面的文件了。
此時,tf2.0的GPU版本安裝成功。
6. 建立pytorch虛擬環境并安裝pytorchGPU版本
這里和上面就基本上是一樣的過程了,這里是按照pytorch的GPU版本,首先是建立虛擬環境
conda?create?-n?pytorch_gpu?python=3.7此時,又出現CondaHTTPError: HTTP 000 CONNECTION FAILED for url, 真是服了, 此時我重新配置.condarc,修改成下面這個樣子:
channels:-?http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/-?http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/-?http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/-?http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ show_channel_urls:?true把vpn關掉,然后好使了。
接下來安裝torch和torchvision, 進入下面這個網站: http://download.pytorch.org/whl/torch_stable.html, 找符合系統版本、cuda版本的torch,采用搜索的方式找
我的是cuda10.0, python3.7版本,win10系統,64位。下載下來。
torchvision同樣的道理,把這兩個.whl文件下載下來。然后回到命令行, 安裝即可。
安裝完畢,進行測試,依然是進入python環境,然后輸入:
這樣,pytorch的GPU版本安裝完畢!
有了這一整套流程,在自己機子上搭建python環境,跑模型實驗,就比較方便啦,不管是tf項目還是pytorch項目,都能用這一套環境實驗。Linux上其實也是這樣的流程,很多地方都是一樣的,原理都是通的,無法就是配置環境變量的時候不太一樣。
參考:
之前整理的文章鏈接也放過來:
大數據環境搭建下面的anaconda搭建
https://zhongqiang.blog.csdn.net/article/details/112376293
Python管理包工具anaconda安裝過程常見問題解決辦法
https://zhuanlan.zhihu.com/p/34337889
Python·Jupyter Notebook各種使用方法
https://blog.csdn.net/liuyanlin610/article/details/76231958
遠程連接GPU服務器上的jupyter notebook解決方案
https://blog.csdn.net/wuzhongqiang/article/details/107555363
Windows下GPU版本詳細安裝教程
https://cloud.tencent.com/developer/article/1458665)
Windows下的Pytorch環境手把手搭建
https://zhongqiang.blog.csdn.net/article/details/104503860
本站qq群851320808,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【Python】Python环境配置保姆教程(Anaconda、Jupyter、GPU环境)!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断Logger级别是否开启的方法
- 下一篇: Windows平台如何查看一个dll依赖