<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【Python】Python環(huán)境配置保姆教程(Anaconda、Jupyter、GPU環(huán)境)!

          共 8705字,需瀏覽 18分鐘

           ·

          2021-10-13 07:42

          作者:吳永強,東北大學,Datawhale團隊成員

          1. 寫在前面

          搞算法的同學也都明白,一個比較完美的python環(huán)境是多么的重要。這篇文章打算把一些必備的python環(huán)境配置過程記錄下來,這樣不管是新到了公司實習或者就職,還是新?lián)Q了電腦,都可以借鑒這篇快速把環(huán)境搭建起來啦 ??

          由于我也是重裝了系統(tǒng),所以算是從0開始搭建python環(huán)境,這次從anaconda安裝開始, 然后到cuda的相關(guān)安裝配置,再到cudnn的安裝配置,然后從anaconda中建立虛擬tensorflow和pytorch的虛擬環(huán)境,再各自的虛擬環(huán)境里面安裝jupyter notebook并完成配置,安裝tensorflow的GPU版本和pytorch的GPU版本。這一整套下來,在自己機子上做一些簡單的模型實驗就沒有問題了。

          雖然這套流程是目前是在Windows上做的,但具有普適性,在Linux上也是一樣的道理,只不過有些地方的操作可能不一樣,原理都是一樣的。

          內(nèi)容包括:

          • Anaconda的安裝與常用命令小總
          • Jupyter的安裝與相關(guān)配置
          • CUDA與Cudnn的安裝(GPU支持必備)
          • 建立tf虛擬環(huán)境并安裝tf2.0GPU版本
          • 建立pytorch虛擬環(huán)境并安裝pytorchGPU版本

          Ok, let’s go!

          2. Anaconda的安裝與常用命令

          Anaconda是為方便使用Python而建立的軟件包,其包含250多個工具包,多版本的Python解釋器和強大的虛擬環(huán)境工具,所以Anaconda是Python的全家桶。Anaconda可以使安裝,運行和升級環(huán)境變得更簡單,所以初步學習Python,這一個就足夠了。

          Windows下的Anaconda安裝,是所謂的傻瓜式安裝,Linux下面的安裝,可以參考我之前整理的(https://zhongqiang.blog.csdn.net/article/details/112376293)

          • Anaconda官網(wǎng)下載安裝包
          • 下載之后,點擊Anaconda3-2019.07-windwos-x86_64.exe這個安裝文件進行安裝,選擇路徑,勾選加入環(huán)境變量,等待安裝完成即可(這些和普通軟件安裝一樣,一路回車操作),
          • 這里面一定注意,不要把anaconda裝到C盤。因為你后面會有好多個虛擬環(huán)境,安裝很多包;另外,建議把conda命令加入到環(huán)境變量里面去。
          • 驗證安裝成功:打開命令行,輸入conda,回車。看是否能進入conda環(huán)境。

          這個安裝比較簡單,不過多整理,下面是常用的命令,這些記好了之后,就能比較輕松的用anaconda管理虛擬環(huán)境,管理相關(guān)包了。打開命令行,輸入activate, 此時會進入一個root的默認虛擬環(huán)境, 如下:
          這個是一個默認的虛擬環(huán)境,如果不想建其他環(huán)境,比較省事的方法就是把所有用到的包全安裝到這里面,打造一個萬能環(huán)境,所以下面先整理關(guān)于包管理的命令

          #?列出當前環(huán)境下安裝的包,?非常常用
          conda?list

          #?實驗過程中,如果發(fā)現(xiàn)某些包沒有,直接安裝
          conda?install?package_name??#?也可以帶版本號
          pip?install?package_name

          #?如果發(fā)現(xiàn)裝錯版本了,想要卸載掉包
          conda?remove?package_name
          pip?uninstall?package_name

          #?更新包
          conda?update?package_name

          在一個虛擬環(huán)境里面,掌握這幾個常用的命令即可,上面是比較省事的方法,只有一個環(huán)境,但我不太習慣這樣做,我一般喜歡建立多個虛擬環(huán)境,在每個虛擬環(huán)境下安裝特定的包去完成相應的實驗,因為有的項目可能需要python2,有的需要python3,有的可能是tf項目,有的可能是pytorch項目。這時候,用到的包會很不一致,所以,分類管理也是一個不錯的思路。那么下面就是管理環(huán)境常用的命令:

          #?查看已經(jīng)有的虛擬環(huán)境?常用
          conda?env?list

          #?新建虛擬環(huán)境?可以指定python版本和一些包的版本
          conda?create?-n?env_names?package_names???#?conda?create?-n?tfenv?python=3.7

          #?進入虛擬環(huán)境,這時候面臨著對一些包的操作,就是上面包的相關(guān)命令了
          activate?tfenv

          #?離開虛擬環(huán)境
          deactivate

          #?刪除虛擬環(huán)境
          conda?env?remove?-n?env_name

          這里單獨拎出一個東西來,叫做共享環(huán)境,這個其實是非常有用的,它能讓其他人安裝項目中使用的所有包,并確保這些包的版本正確。比如開發(fā)了一個系統(tǒng),讓別人來部署,但其他人可能不知道用的哪個python版本,哪些包等,盲目安裝又可能由于版本原因出現(xiàn)問題,所以共享環(huán)境就比發(fā)揮威力了。怎么用?

          #?將當前環(huán)境下安裝的包保存為YAML文件
          conda?env?export?>?environment.yaml

          此時在當前目錄下就會發(fā)現(xiàn)一個導出的環(huán)境文件:


          在GitHub上共享代碼時,我們往往會看到這樣的操作,一般人家都會給出創(chuàng)建環(huán)境的文件,這時候,我們git clone下項目之后,依賴這個文件就能輕松安裝依賴項。那么導出的環(huán)境文件如何使用呢?

          activate?tfenv

          #?安裝所有包
          conda?env?update?-f=/path/to/environment.yaml????

          如果不用conda,而是用pip的時候,可以導出一個txt文件,然后安裝:

          pip?freeze?>?requirements.txt??#?導出文件

          #?然后將該文件包含在項目的代碼庫中,其他項目成員即使在他的電腦上沒有安裝conda也可以使用該文件來安裝和我一樣的開發(fā)環(huán)境
          pip?install?-r?/path/requirements.txt

          關(guān)于anaconda,就整理這么多,應該是夠用啦,后續(xù)如果有新大陸,還會再補充。

          3. Jupyter的安裝與相關(guān)配置

          關(guān)于jupyter, 在安裝了anaconda, 默認的root環(huán)境下會有jupyter notebook的,但是新創(chuàng)建了虛擬環(huán)境之后,我們還需要重新安裝jupyter notebook。命令很簡單:

          pip?install?jupyter?notebook

          安裝jupyter很簡單,這里想整理一個事情,就是修改默認的工作空間,在Windows上使用jupyter notebook不像Linux,Linux是在哪個目錄下啟動,就會默認哪個目錄為工作空間,但是Windows中不是這樣,那么怎么修改默認工作空間呢?

          這個一般是修改jupyter的配置文件,如果沒有,就打開命令行,通過下面命令生成:

          jupyter?notebook?--generate-config

          此時會在C盤user下面的.jupyter目錄下面產(chǎn)生一個jupyter_notebook_config.py的文件:


          用Notepad++打開jupyter_notebook_config.py,找到c.Notebook,建立你的新工作路徑,取消注釋,c前面的#要去掉。
          點擊保存,這下就修該好了路徑,cmd,輸入jupyter notebook,你就發(fā)現(xiàn)你的路徑已更改


          這樣一般是能夠修改路徑的,如果還沒有,搜一下添加下環(huán)境變量,再修改下快捷方式。

          修改配置文件,不僅可以修改默認工作空間,還能修改默認啟動瀏覽器,想到想用的瀏覽器路徑,然后打開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使用的默認瀏覽器。

          在這里插入圖片描述

          關(guān)于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單元格操作的快捷鍵:

          執(zhí)行當前cell,并自動跳到下一個cell:Shift Enter
          執(zhí)行當前cell,執(zhí)行后不自動調(diào)轉(zhuǎn)到下一個cell:Ctrl-Enter
          是當前的cell進入編輯模式:Enter
          退出當前cell的編輯模式:Esc
          刪除當前的cell:雙D
          進入下一個cell:雙A (前面)或 Alt+Enter(后面)

          為當前的cell加入line number:單L
          將當前的cell轉(zhuǎn)化為具有一級標題的maskdown:單1
          將當前的cell轉(zhuǎn)化為具有二級標題的maskdown:單2
          將當前的cell轉(zhuǎn)化為具有三級標題的maskdown:單3

          為一行或者多行添加/取消注釋:Crtl /
          撤銷對某個cell的刪除:z
          瀏覽器的各個Tab之間切換:Crtl PgUp和Crtl PgDn
          快速跳轉(zhuǎn)到首個cell:Crtl Home
          快速跳轉(zhuǎn)到最后一個cell:Crtl End

          ctrl?+???????????#注釋
          shift?+?tab??????#?查詢函數(shù)的注解

          #?jupyter?將本地.py文件導入
          %load?test.py?#test.py是當前路徑下的一個python文件

          #?運行python文件
          %run?file.py
          !python?myfile.py

          4. Cuda和Cudnn的安裝

          CUDA是一個并行運算的一個計算平臺,而CuDNN是在上面的一個深度神經(jīng)網(wǎng)絡(luò)的GPU加速庫。如果想用TensorFlow或者pytorch的GPU版本,這兩個是必須要安裝的。但前提,機子內(nèi)得有顯卡,且是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

          下載完成后,打開下載的驅(qū)動, 開始安裝。這里選擇自定義安裝:

          自定義安裝這里可以進行一些設(shè)置,否則有可能會導致安裝失敗,首先組件這里取勾GeForce Experience,


          然后, 我這里安裝的時候,必須Visual Studio Integration也需要取消勾選。

          點開Driver comonents,Display Driver這一行,前面顯示的是Cuda本身包含的驅(qū)動版本是411.31
          如果你電腦目前安裝的驅(qū)動版本號新于Cuda本身自帶的驅(qū)動版本號,那一定要把這個勾去掉。否則會安裝失敗(相同的話,就不用去取勾了)


          接下來就等他安裝完成即可。

          結(jié)束之后, 怎么看是否成功了呢?打開下面這個路徑,查看nvcc.exe,有這個說明CuDA安裝成功。


          打開此文件夾,查看有沒有cuti64_100.dll


          有這個cuti64_100.dll就說明CUPT1已成功。

          4.2 Cudnn安裝

          同樣的,來官網(wǎng): https://developer.nvidia.com/rdp/cudnn-download, 選擇Cudnn for CUDA10.0, 這個需要登錄, 注冊個郵箱或者用微信登錄即可。

          下載下來之后,解壓cuDNN:


          將解壓后文件復制到CUDA文件夾下


          接下來,要配置環(huán)境變量,

          我的電腦——>屬性——>高級系統(tǒng)設(shè)置——>環(huán)境變量

          在系統(tǒng)環(huán)境變量中找到path

          當安裝完Cuda的時候,會自動的cuda的bin目錄以及l(fā)ibnvvp目錄加入到環(huán)境變量中,但是并沒有加CUPA和Cudnn的路徑,我們需要把這倆加入進來,這樣,在使用TensorFlow的時候,才不會報錯。


          Cudnn和Cupta的路徑缺一不可,第三個不用管,安裝anaconda的時候,會自動加入。

          測試cuda, 打開命令行, 輸入nvcc \-V


          這里會顯示版本。

          5. 建立tf虛擬環(huán)境并安裝tf2.0GPU版本

          這里主要是tf2.0GPU版本的安裝, 有了上面的鋪墊,這里會變得非常簡單。

          首先,先建立一個tfenv的虛擬環(huán)境:

          conda?create?-n?tfenv?python=3.7

          此時,我這里竟然報了一個錯誤:

          CondaHTTPError:?HTTP?000?CONNECTION?FAILED?for?url?<https://mirrors.tuna.ts

          這個我一開始以為是我anaconda換了安裝目錄導致的,但經(jīng)過查閱資料,應該是源的問題,anaconda換源后無法創(chuàng)建新的虛擬環(huán)境。我的解決辦法:

          找到這個.condarc文件,這個在我的C:\Users\ZhongqiangWu目錄下面,把https改成了http就好了。

          這樣就能創(chuàng)建出tfenv的虛擬環(huán)境,然后激活activate tfenv,進入環(huán)境。

          //?安裝TensorFlow-gpu
          pip?install?tensorflow-gpu=2.0.0-beta0

          此時等待下載,進行安裝即可。安裝完畢之后,測試是否安裝成功。

          在當前環(huán)境下,輸入python進入環(huán)境,然后:

          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

          這個通過查資料,大部分得出的結(jié)論是這篇文章說的那樣, 即cuda版本的問題, 這里會發(fā)現(xiàn)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目錄加入到了環(huán)境變量里面,為啥還會報上面的這個找不到這個文件的錯誤呢?其實是費了一些時間的,網(wǎng)上也沒找到好的辦法,最后,我想到,可能是因為我anaconda啟動的原因:

          我anaconda這次安裝到了D盤里面,然后依然是借助Anaconda Prompt啟動了命令行,然后進入的虛擬環(huán)境。此時,我再想一個問題,我在虛擬環(huán)境里面輸入python,然后import tensorflow的時候,此時tensorflow去找依賴的時候,是去哪里找呢?


          怎么保證它這里是找的環(huán)境變量里面的配置呢?好像并沒有進行設(shè)置,所以我猜測,它這里找dll的時候,可能是D:\Anaconda3\envs\tfenv\Library\bin目錄下去找相關(guān)的dll文件,如果找不到,可能不會自動的去總的環(huán)境變量里面找,就直接報錯了。


          這個啟發(fā)來自于,如果我們通過anaconda3自動安裝cuda和Cudnn的時候,此時cudart64_100.dll是在D:\Anaconda3\envs\tfenv\Library\bin目錄下的。而上面我們并沒有通過anaconda3安裝這倆哥們,而是手動安裝的,那么在anaconda 自己的命令行里面可能找不到。

          所以關(guān)于這個問題,我最終的解決辦法,就是不用anaconda prompt啟動命令行進虛擬環(huán)境,而是直接cmd打開系統(tǒng)的命令行,然后直接輸入activate,進入root的環(huán)境,然后activate tfenv進入到虛擬環(huán)境,此時再運行測試,發(fā)現(xiàn)成功。這個應該是走環(huán)境變量里面的文件了。


          此時,tf2.0的GPU版本安裝成功。

          6. 建立pytorch虛擬環(huán)境并安裝pytorchGPU版本

          這里和上面就基本上是一樣的過程了,這里是按照pytorch的GPU版本,首先是建立虛擬環(huán)境

          conda?create?-n?pytorch_gpu?python=3.7

          此時,又出現(xiàn)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關(guān)掉,然后好使了。

          接下來安裝torch和torchvision, 進入下面這個網(wǎng)站: http://download.pytorch.org/whl/torch_stable.html, 找符合系統(tǒng)版本、cuda版本的torch,采用搜索的方式找


          我的是cuda10.0, python3.7版本,win10系統(tǒng),64位。下載下來。

          torchvision同樣的道理,把這兩個.whl文件下載下來。然后回到命令行, 安裝即可。

          pip?install?"torch-1.2.0-cp37-cp37m-win_amd64.whl"
          pip?install?"torchvision-0.4.0-cp37-cp37m-win_amd64.whl"

          安裝完畢,進行測試,依然是進入python環(huán)境,然后輸入:


          這樣,pytorch的GPU版本安裝完畢!

          有了這一整套流程,在自己機子上搭建python環(huán)境,跑模型實驗,就比較方便啦,不管是tf項目還是pytorch項目,都能用這一套環(huán)境實驗。Linux上其實也是這樣的流程,很多地方都是一樣的,原理都是通的,無法就是配置環(huán)境變量的時候不太一樣。

          參考:

          之前整理的文章鏈接也放過來:

          • 大數(shù)據(jù)環(huán)境搭建下面的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服務(wù)器上的jupyter notebook解決方案

            https://blog.csdn.net/wuzhongqiang/article/details/107555363

          • Windows下GPU版本詳細安裝教程

            https://cloud.tencent.com/developer/article/1458665)

          • Windows下的Pytorch環(huán)境手把手搭建

            https://zhongqiang.blog.csdn.net/article/details/104503860


          往期精彩回顧




          本站qq群851320808,加入微信群請掃碼:

          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美三级特黄一区 | 一区二区三区日本视频 | 国产精品6区 | 色亭亭五月天 | 日本一级持黄 |