{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# [X-Village] Lesson07-package_manager\n", "# by 劉正仁" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Package Manager\n", "\n", "### 顧名思義就是管理套件(Package)的程式(Manager)。 \n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Package Manger (Con't)\n", "\n", "### 很多公司跟開發者,都會將他們開發出來的套件(Package)發布給其他開發者,有免費的也有需要付費的。 \n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Package Manager (Con't)\n", "\n", "### 這些開源(open source)的套件(package)都存在於網路中,[python 官方網站](https://pypi.org/)提供一個地方讓開發者分享自己的努力。 \n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Package Manager (Con't)\n", "\n", "**pip** 這個程式就是 python 提供的套件管理程式(Package Manager)。 \n", "pip 的責任就是幫我們從網路中下載這些第三方的套件(Third-party package) 到我們的電腦中做使用。 \n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# PIP 使用教學" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# PIP 使用教學 (Con't) \n", "### 在終端機中執行以下指令,查找自己的 Python 灌在哪個資料夾中\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# PIP 使用教學 (for Windows) (Con't)\n", "### 找到 PIP 所在的資料夾位置\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# PIP 使用教學 (for Windows) (Con't)\n", "### 將 PIP 所在的路徑加入 PATH 環境變數中\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# PIP 使用教學 (for Windows) (Con't)\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# PIP 使用教學 (Con't)\n", "\n", "### 在終端機中執行 pip,確認是否可以執行 pip\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# PIP 使用教學 (Con't)\n", "\n", "### 查看 PIP 相關資訊\n", "\n", "
\n", "\n", "

之後 PIP 下載的套件都會存在 PIP 所在的目錄中

" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# 安裝第三方套件\n", "\n", "

pip install module

" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# 安裝第三方套件 (Con't)\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# 安裝第三方套件 (Con't)\n", "### 執行看看\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# 查看已安裝的套件\n", "

pip freeze

" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# 查看已安裝的套件 (Con't)\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# 輸出安裝的套件到檔案中\n", "

pip freeze > requirements.txt

" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Virtualenv\n", "### 虛擬環境(virtualenv)可以幫我們在電腦中分離(isolate)出虛擬的環境。\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv (Con't)\n", "\n", "### 為什麼我們需要那麼多的環境呢?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv (Con't)\n", "\n", "### 正常情況,工程師在同一時間正在執行的專案不只一個" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv (Con't)\n", "\n", "### 如果有的專案使用到 Python2,有的專案使用到 Python3; 有的專案要裝 TensorFlow,有個專案要裝 Requests......" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv (Con't)\n", "\n", "### 如果將上述所有專案所需要的東西都裝在一個環境下...\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv (Con't)\n", "\n", "### 如果我們將每個專案都分離出一個環境...\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv (Con't)\n", "\n", "總結虛擬環境(virtualenv)帶給我們的好處 \n", "* 保持電腦執行環境的整潔\n", "* 讓我們能夠在同一電腦上,體驗不同的環境\n", "* 方便管理專案" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Virtualenv 使用教學" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv 使用教學 (for Windows) (Con't)\n", "

請先將 Vscode 中的終端機改為 cmd,virtualenv 無法在 powershell 中執行

\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv 使用教學 (for Windows) (Con't)\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv 使用教學 (Con't)\n", "### 請在終端機界面下輸入以下指令:\n", "

pip install virtualenv

" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv 使用教學 (Con't)\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv 使用教學 (Con't)\n", "### 建立新環境,在終端機下執行:\n", "

virtualenv \"environment_name\"

\n", "

pip 和 python直譯器 也會自動幫我們安裝在新的環境中

\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv 使用教學 (Con't)\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv 使用教學 (for Windows) (Con't)\n", "### 進入新的環境,必須執行以下指令:\n", "\n", "

.\\environment_name\\Scripts\\activate

\n", "\n", "

environment_name: 環境名稱

\n", "

activate: 啟動(切換)環境的執行檔

\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv 使用教學 (for Linux and Mac) (Con't)\n", "### 進入新的環境,必須執行以下指令:\n", "\n", "

source ./environment_name/bin/activate

\n", "\n", "

environment_name: 環境名稱

\n", "

activate: 啟動(切換)環境的執行檔

" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "# Virtualenv 使用教學 (Con't)\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# 課堂練習 ex1 (不計分)\n", "\n", "請在家目錄下(ex: C:\\Users\\F7404014)建立一個新的環境,並且命名為 **\"X-Village\"** \n", "並在此環境下安裝以下幾個第三方套件: \n", "* requests \n", "* numpy \n", "* pandas \n", "* matplotlib \n", "\n", "並且將安裝的套件輸出到 requirements.txt 中" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "

感謝聆聽

" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }