准备Django环境

我们再回到第一天提到的主题内容, 如下图. 我们已经完成training与tracking的部份, 接下来我们开始准备serving的工作.

https://ithelp.ithome.com.tw/upload/images/20210922/20140792BLbdmwNjts.png

这次的serving任务, 我们先以手工打造的方式做一次, 也就是我们自已准备一个Django环境, 然後将先前训练好模型复制到Django的专案中, 再由Django web server提供enodpint, 好让使用者可以存取这个endpoint後得到推论的结果.

这一篇我们要做的事情是准备好Django环境, 以下操作是以Window的WSL环境进行说明, OS是ubuntu

  • 安装pip

    $sudo apt-get install -y python3-pip
    
  • 安装virtualenv

    $sudo pip3 install virtualenv
    
  • 我们先在ubuntu下建立一个目录, 名称为ironman-workspace, 我们的专案就放这个目录, 然後再cd到这个目录

    $mkdir ironman-workspace
    $cd ironman-workspace
    
  • 建立虚拟环境

    $virtualenv VENV
    

    执行後会看到在目录中已建立一个目录, 名称为VENV
    https://ithelp.ithome.com.tw/upload/images/20210922/20140792ZBJjzuedh3.png

  • 启用虚拟环境

    $source VENV/bin/activate
    

    执行後如下图:
    https://ithelp.ithome.com.tw/upload/images/20210922/20140792StRu42pYQX.png

  • 确认虚拟环境(VENV)目录里有什麽
    一般来说, 不同的Django应用程序会有自己的虚拟环境(VENV), 目的是让不同的应用程序可以使用不同版本的package, 例如应用程序A可以使用Django 3.x.x, 而应用程序B可以使用Django 3.y.y, 这是怎麽做到的呢?

    我们现在来看一下VENV目录下现在有什麽, 请执行

    $cd VENV/lib/python3.8/site-packages/
    $ll
    

    在下图. 目前没有django这个目录, 因为我们还没安装
    https://ithelp.ithome.com.tw/upload/images/20210922/20140792F7hJs2NH0v.png

  • 安装Django
    好的, 接下来我们来安装django

    $cd ~/ironman-workspace
    $pip install django
    

    一切顺利, 没有喷错. 这样就安装好了
    https://ithelp.ithome.com.tw/upload/images/20210922/20140792rkWyq2A69z.png

  • 确认安装Django之後发生了什麽事
    我们再来看看VENV目录的内容, 执行

    $cd VENV/lib/python3.8/site-packages/
    $ll
    

    如下图. 我们可以看到在 site-packages目录中已安装Django, 而且版本是3.2.6, 也就是在不同的虚拟环境目录中, virtualenv这个工具会帮我们管理每个虚拟环境的package与版本,在启用(activate)这个虚拟目录之後, 所使用到的package就只会限制在虚拟目录里的package, 而不会跟其他虚拟目录的版本有所冲突, 所以在同一个开发环境中, 你可以安装多个彼此独立且不同版本的开发环境.
    https://ithelp.ithome.com.tw/upload/images/20210922/201407924syglo4sTU.png
    这是我目前对虚拟环境的理解.

到这里我们已经把Django的环境安装完成, 接下来明天我们来写Django的code


<<:  Day10 while回圈

>>:  ViewModel 的 Single source of truth

Gloud IAM 是什麽?

IAM 简介 经过昨天已经设定好了的GCP SDK後,可以开始进入云端世界上的正题溜,首先开始使用G...

Day 26 利用transformer自己实作一个翻译程序(八) Multi-head attention

Multi-head attention 在Day 12 Self-attention(六) Mul...

Day 27:DB也是假的 建立Mock SQLDelight

Keyword: SQLDelight Mock Test 直到27日,完成KMM的测试功能放在 K...

RISC-V: R-type 算术指令

终於进到 R-type 指令了! 指令实作已经有固定流程了,很单纯, 另外花了一点时间修改昨天的 E...

EP13 - [TDD] 使用工厂模式让测试更简单

Youtube 频道:https://www.youtube.com/c/kaochenlong ...