# 1091 迴歸模組 - 環境建置 ###### tags: `環境` `python` `WSL` ###### 更新日期: 2020/09/23 ### <p style="color:red"> graphlab 真的收攤了,無法再使用一般安裝方案了! </p> - graphlab,https://turi.com,基本上會重新導向 turicreate 的 github。 - 下方留存,若要安裝,基本上要走 turi-create 方案。 --- ## 檔案說明 課堂中,會使用到 python 2.7 上的 [graphlab](https://turi.com/download/install-graphlab-create.html)。 但因為 python 2.7 [已停更](https://www.ithome.com.tw/news/135155),以及 graphlab 其實已易主,所以提供兩種方法: [一](#graphlab-安裝)、真的裝 graphlab - [官方安裝](https://turi.com/download/install-graphlab-create.html) - 因為停更關係,無法正常使用。 - 以 [Anaconda](https://www.anaconda.com/products/individual) 已經安裝完成做教學。 [二](#turi-create-安裝)、turi create - [github](https://github.com/apple/turicreate) - supports: * macOS 10.12+ * Linux (with glibc 2.10+) * Windows 10 (via WSL) [附錄](#jupyter-使用)、jupyter 使用簡簡簡說明 **請注意,兩種套件*不用*同時安裝** <!-- [strong 的](https://turi.com/download/install-graphlab-create.html?email=strong_1720%40gms.tku.edu.tw&key=9A1A-F4AF-365B-A83E-29C4-CA3C-F0C0-F142&utm_medium=email&utm_source=transactional&utm_campaign=beta_registration_confirmation) --> --- # Anaconda 安裝 > 以 win10 為例 1. 到 [Anaconda 官網](https://www.anaconda.com/products/individual) 下載安裝檔 2. 執行安裝檔 * 基本上執行「Next」到底 * (可選)可以更改儲存路徑,到不怕寫的空間 ![更改儲存路徑](https://i.imgur.com/ArE0oFC.png) * (建議)請勾選將 anaconda 加入環境參數的選項,除非已經有其他常用的環境了,不然勾了會比較方便在 CMD 或 PowerShell 下執行。 ![將 anaconda 加入環境參數](https://i.imgur.com/Z5gb4h9.png) * 或 使用 Anaconda Prompt 也行 ![Anaconda Prompt](https://i.imgur.com/jSmdZ9P.png) 3. 在 命令提示字元/PowerShell/Prompt 試試看,是否可以執行 ``` conda -V ``` ![conda -V](https://i.imgur.com/UecbXq9.png) 本篇安裝主要以 windows 這類文字介面為主,該文件一律寫命令提示字元做提示,請自己代換成習慣的工具。 --- # graphlab 安裝 ## 註冊、開啟說明文件 1. 先[註冊](https://turi.com/download/academic.html)。 註冊完會寄至信箱,開啟信箱內容備用 ![信件](https://i.imgur.com/1DicDrU.png) 2. 點進去 「PERSONALIZED INSTALLATION GUIDE」 * **Install with pip** &rarr; ![](https://turi.com/images/download/install-pip-hover.png) * 找到「Step 5: Install GraphLab Create」備存 ![Step 5: Install GraphLab Create](https://i.imgur.com/vxqKvBR.png) ## 開新虛擬環境 開啟命令提示字元,執行下述 開新虛擬環境: ``` conda create -n gl-env python=2.7 ``` > 指定 python 2.7 > 不再尾綴 anaconda,可用的 4.1.1 已經不在了 進入該環境: ``` conda activate gl-env ``` <!-- 若有 bokeh 的問題, 修正 [issue from](https://github.com/bokeh/bokeh/issues/5196) 更改 C:\Users\<user name>\Anaconda3\pkgs\bokeh-0.11.1-py27_0\info\file 中 Find: "bokeh-script.py-server" Replace: "bokeh-server-script.py" 如果沒有這個文件 先建構環境後便會生成,再把環境刪除,更改後再建構即可 ```powershell conda remove --name gl-env --all ``` --> ---- ## 安裝 graphlab > [參考](https://turi.com/download/install-graphlab-create-command-line.html),注意已經不能全用。 找到註冊步驟的文件: ![Step 5: Install GraphLab Create](https://i.imgur.com/vxqKvBR.png) 丟進去命令提示字元,執行。 > 只是模板 > ``` > pip install --upgrade --no-cache-dir https://get.graphlab.com/GraphLab-Create/2.1/your registered email address here/your product key here/GraphLab-Create-License.tar.gz > ``` > 可以用註冊完成的信件給的文件,會將這 **product key**、**email address** 填寫好。 <!-- ``` pip install --upgrade --no-cache-dir "https://get.graphlab.com/GraphLab-Create/2.1/strong_1720@gms.tku.edu.tw/9A1A-F4AF-365B-A83E-29C4-CA3C-F0C0-F142/GraphLab-Create-License.tar.gz" ``` --> ---- ## 安裝其他需要的東西 資料視覺化、Array: ``` conda install -c conda-forge matplotlib numpy ``` 主要使用 jupyter notebook 做教學與作業: ``` conda install -c conda-forge notebook ``` ---- ## 安裝完後,執行 jupyter 1. 點開「Anaconda Navigator」![開始 Anaconda Navigator](https://i.imgur.com/Tw1u43g.png) 2. 左上邊,選擇環境: ![Anaconda Navigator 選擇環境](https://i.imgur.com/JoiBI0z.png) 3. 執行 jupyter notebook ![launch](https://i.imgur.com/Jjgu9Q9.png) ![Anaconda Navigator - jupyter notebook](https://i.imgur.com/JTkNpQn.png) 4. 等待瀏覽器開啟 ![jupyter notebook](https://i.imgur.com/N0tKGcj.png) * 在沒更改的環境下基本上,這裡對應到的是 「C:/使用者/<使用者名稱>/」 * 可以使用右側的上傳,或是將檔案放到對應的地方即可 ![Upload](https://i.imgur.com/P77UjQ6.png) ---- ## 第一次使用;上面全部成功後 1. 通 graph lab 的協議 (其實就是補裝東西) 1. 建立編寫的筆記本(ipynb) ![](https://i.imgur.com/olNDtvC.png) ![](https://i.imgur.com/z5aJhtk.png) 2. 鍵入下述,並以「Shift + Eneter」執行該單元(Cell) ``` python import graphlab ``` 3. 第一次會得到如下圖 ![import graphlab first time](https://i.imgur.com/SsED6iR.png) 4. 在第二格輸入下述,再執行該單元 ``` python graphlab.get_dependencies() ``` ![graphlab.get_dependencies()](https://i.imgur.com/Ojwjoit.png) <!-- 用沙盒跑出現 「IOError: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)」 --> 5. 跑完就可以,重開整個 python,來準備寫作業啦。 <!-- 第一次於機器開起 graphlab 會遇到 ``` python import graphlab ``` 請先執行 ``` python graphlab.get_dependencies() ``` 要通協議 ![學長的版本](https://i.imgur.com/rGgBiA4.png) --> ---- ## FAQ,錯誤補充 ### 問題 1. LookupError: unknown encoding: cp65001 > [issue from](https://github.com/conda/conda/issues/5448) > 可能會在命令提示字元執行 python 或 jupyter 的時候遇到 >> ![cp65001 - 1](https://i.imgur.com/nzR9edE.png) >> ![cp65001 - 2](https://i.imgur.com/hrcUUsZ.png) if get error like: ```powershell LookupError: unknown encoding: cp65001 ``` do ```powershell set PYTHONIOENCODING=UTF-8 ``` ### 問題 2. 資料預覽無法顯示 在 python 執行下述程式碼的時候有遇到 相關問題, [](https://stackoverflow.com/questions/50426833/graphlab-sframe-show-error-requested-port-is-unavailable-none) ``` python graphlab.canvas.set_target('ipynb') sales.show(view="Scatter Plot", x="sqft_living", y="price") ``` ![](https://i.imgur.com/Zc6tYF6.png) 請用命令提示字元補充執行「降特定套件的版本」 <!-- graphlab 有用到: --> ``` pip install tornado==4.5.3 ``` ![](https://i.imgur.com/X4B1TZK.png) 重開後運行,就會正常了。 ### 問題 3. graphlab 無法驗證 (未完成) > 方案提供 [中文](https://www.itread01.com/content/1549083618.html) > [主要解決內容](http://blog.csdn.net/u013569000/article/details/53886656) > 相同問題 [stack overflow](https://stackoverflow.com/questions/43716318/downloading-graphlab-is-causing-this-error) 未解決 #### Step. 0 下載兩個對應檔案 會在 [Step. 1](https://hackmd.io/ojs00XsvQZmO1yp001FpzA#Step-1) 找到對應連結 > 但是通常驗證出問題,就是因為兩個連結無法,進行下載,所以基本上短期是無法解決的 > 除非找到網路上的備用檔案 (未找到) >> 原始網路路徑 >> [xz-5.2.1-windows.zip](http://tukaani.org/xz/xz-5.2.1-windows.zip) >> [mingw-w64-x86_64-gcc-libs-5.1.0-1-any.pkg.tar.xz](http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-libs-5.1.0-1-any.pkg.tar.xz) <- 就是這東西的網路資源不見了 >>> 感覺可以找相關網路資源去開 #### Step. 1 去 ``` [PATH of Anaconda]\envs\gl-env\Lib\site-packages\graphlab\ ``` 開啟 ``` dependencies.py ``` 並找到以下對應兩行程式碼。 ``` (xzarchive_file, xzheaders) = urllib.urlretrieve('http://tukaani.org/xz/xz-5.2.1-windows.zip') ``` ``` (dllarchive_file, dllheaders) = urllib.urlretrieve('http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-libs-5.1.0-1-any.pkg.tar.xz') ``` #### Step. 2 將網址,改成在 [Step-0](#Step-0) 下載下來的對應路徑。 #### Step. 3 重新 ``` import graphlab ``` 應該就可以了。 [筆記連結](#%E4%B8%8A%E9%9D%A2%E5%85%A8%E9%83%A8%E6%88%90%E5%8A%9F%E5%BE%8C) ### 問題 4. 上面完全裝不起來 #### 法一 (不知為何無法) conda pack [直接找裝完的同學,複製一份來用](https://www.anaconda.com/blog/moving-conda-environments) ``` conda package -n gl-env ``` #### 法二 直接複製環境檔案 也是 直接找裝完的同學,複製一份來用 到裝好的 ``` [path_anaconda]/envs/ ``` 下找到 ``` gl-env ``` (環境名稱),複製建議壓縮, 並解壓縮貼到自己的 ``` [path_anaconda]/envs/ ``` 環境下。 > how to find [path_anaconda] > 指令: ``` conda info ``` > 找到 "base environment" or older version is "activate env location" > 就是 anaconda 裝的地方 像是: ![conda info](https://i.imgur.com/K372DP7.jpg) 確認已安裝的虛擬環境 ``` conda info -e ``` ##### 不在裡面嗎 假設把環境放在 ``` E:\Anaconda3\envs\gl-env ``` ``` conda activate E:\Anaconda3\envs\gl-env ``` ![](https://i.imgur.com/zqA5tFi.png) ![](https://i.imgur.com/b8Zrlpu.jpg) 至於要如何補充進 ``` conda info -e ``` ,歡迎指教。 > [Specifying a location for an environment](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#specifying-a-location-for-an-environment) #### 法二的除錯,或說 必做 ##### jupyter 打開 notebook 有超長的 ERROR 而且不能執行任何 cell,如圖。 ![](https://i.imgur.com/OSaAZDr.png) 解決方法: 1. 找到 ``` [path_anaconda]\envs\gl-env\share\jupyter\kernels\python2\kernel.json ``` ,以為文字編輯器開啟: 2. 將該行 ``` "C:/Users/pria/anaconda3/envs/gl-env\\python.exe", ``` 改成自己的 ``` "[path_anaconda]\\envs\\gl-env\\python.exe", ``` 例如 ``` "D:\\_Anaconda3\\envs\\gl-env\\python.exe" ``` 3. 再去執行看看 <!-- 對上面很不抱持希望的先測試下面的 turi --> --- # turi create 安裝 安裝方法參考,[github](https://github.com/apple/turicreate)。 ---- ## windwos 安裝 WSL > 非 win10 直接跳過,Mac/Linus 可以直接安裝。 > 參考: > * [在 Windows 10 上安裝適用於 Linux 的 Windows 子系統 (WSL) | Microsoft Docs](https://docs.microsoft.com/zh-tw/windows/wsl/install-win10) > * 如果需要圖形化介面可以參考:[Window10 建置Ubuntu(WSL2)與GUI桌面配置筆記 | by 李俊諭 | Medium](https://medium.com/@s123600g/window10-%E5%BB%BA%E7%BD%AEubuntu-wsl2-%E8%88%87gui%E6%A1%8C%E9%9D%A2%E9%85%8D%E7%BD%AE%E7%AD%86%E8%A8%98-58796915ed4d) 開啟 Windows子系統 - Linux版 ``` powershell dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart ``` 或是 ![Windows子系統Linux版](https://miro.medium.com/max/623/1*RbImp5_wVMUf0TOhqPJM3Q.png) 然後電腦 **重新啟動** #### 選擇子系統 [Ubuntu 18.04 LTS](https://www.microsoft.com/store/apps/9N9TNGVNDL3Q) 「開始」會出現 ![Menu - Ubuntu 18.04 LTS](https://i.imgur.com/BZTgqv5.png) 初始化跑完,就跟平常 linux 一樣了。 > linux root 會在 > ``` > %LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs > ``` ---- ## 安裝 anaconda > 詳細請見[連結](https://problemsolvingwithpython.com/01-Orientation/01.05-Installing-Anaconda-on-Linux/) 只是挑了個 linux 最新版,可依需求更改 ```lilnux wegt https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh sudo chmod u+x Anaconda3-2020.07-Linux-x86_64.sh bash Anaconda3-2020.07-Linux-x86_64.sh ``` 跑預設設定 ```linux source .bashrc ``` 主要執行 load initial config --- ## 安裝 turi 開新環境,並進入 ```linux conda create -n turi-env python=3.8 anaconda conda activate turi-env ``` 安裝 turicreate ``` pip install -U turicreate ``` ---- ## 安裝其他工具 安裝 jupyter notebook ``` conda install -c conda-forge notebook ``` 其他基本上 anaconda 已經自帶了 ---- ## 與 graphlab 代換 引入,從 ```pyhton import graphlab as gl ``` 改成 ```pyhton import turicreate as tc ``` 然後後續檔案基本上從 gl 改 tc 即可; 會有部分功能要稍作設定修改。 --- # jupyter 使用 如果每次開 Navigator 很久。 開始直接在 命令列 執行 ``` jupyter notebook ``` 即可。 請確認沒有錯誤訊息, 若無還,如果沒有跳出來瀏覽器,就用瀏覽器開看看 [http://localhost:8888/tree?](http://localhost:8888/tree?) ---- > 可以開成 server,就可以不用開遠端,直接連到運算單元了。 > 這樣就可以使用自己電腦來上課了 設定檔 ``` jupyter notebook --generate-config ``` 去編輯設定檔: ``` nano ~/.jupyter/jupyter_notebook_config.py ``` 要對外,最少要更改監聽 ip、密碼 ```python c.NotebookApp.ip = '*' # search "password" in jupyter_notebook_config.py file ``` 剩下自己研究 :grinning: [說明文件](https://jupyter-notebook.readthedocs.io/en/stable/config.html) ---