[17] [烧瓶里的部落格] 07. 专案可安装化(打包)

专案可安装化可以让你的专案在不同环境里面安装,就像你在专案中安装 Flask 或是其他套件库一样
如此一来你的专案就可以其他套件一样部署,也可以用标准的 Python 工具来管理!

可安装化还可以带来以下好处,这些好处在教学中可能不太明显或者初学者可能没注意到

  1. 目前情况下 Python 和 Flask 只能在你的专案资料夹中使用 flaskr package
    专案可安装化之後就可以从任何地方引入来使用
  2. 可以和其他套件一样管理依赖项目
    使用pip install yourproject.whl安装并一并安装相关依赖
  3. 测试工具可以分离测试环境和开发环境

专案叙述档案

setup.py 档案说明专案和关联的档案

/setup.py

from setuptools import find_packages, setup

setup(
    name='flaskr',
    version='1.0.0',
    packages=find_packages(),
    include_package_data=True,
    zip_safe=False,
    install_requires=[
        'flask',
    ],
)

packages 告诉 Python 套件包所包括的资料夹(及其所包含的 Python 文件)
find_packages() 会自动找到这些资料夹,这样就不用手动写出来
为了包含其他文件夹,如静态文件和模板文件所在的文件夹,需要设定 include_package_data
Python 还需要一个档案MANIFEST.in来说明这些档案有哪些

/MANIFEST.in

include flaskr/schema.sql
graft flaskr/static
graft flaskr/templates
global-exclude *.pyc

这告诉 Python 复制所有statictemplatesschema.sql资料夹中的档案
但是排除所有编译过的.pyc档案
更多参数和说明可以参考官方文件:Packaging Python Projects

安装专案

使用pip在虚拟环境中安装专案

$ pip install -e .

这个指令告诉 pip 在当前资料夹中寻找setup.py并在「编辑」或「开发」模式下安装
编辑模式是指当改变本机的程序後,只需要重新安装专案
就可以重新套用专案的设定档,例如专案使用的相依套件之类

可以透过指令来查看专案的安装情况

pip list

but you can call it from anywhere, not just the flask-tutorial directory.

对於专案运作并不会改变什麽,FLASK_APP还是被设定为flaskr,还是使用flask run来启动
不同的是现在可以在任何地方来呼叫,而不仅仅 是在flask_blog目录下


<<:  [DAY 1]前言

>>:  自动化 End-End 测试 Nightwatch.js 之踩雷笔记:开启新视窗

30天学会Python语言: Day 27-时间管理大师

电脑中的计时方式 电脑的时钟会记录目前从 1970/1/1 00:00:00 过了几秒,再透过这个秒...

AI ninja project [day 13] 回归

这应该也是学习深度学习时的基础课程, 不确定跟图像分类比,哪一个会先学到, 但是在接触深度学习框架时...

Proxmox VE 安装虚拟机:Windows 10 (三)

对於需要效能的客体机来说,最关键的部份就在於网路传输及磁碟读写效能,它们会直接影响到客体机服务的顺...

Day 26 广播自己的BGP

继上篇,我们拿到了一个AS Number及IPv6。我们接着就要开始去广播我们的网路啦!!! 首先,...

DAY 29 第二十九章 风险类别-财务风险-感知层:8.4 实体攻击、8.5 维护设备成本、 8.6 设备失窃

本章是最後一个章节,进入财务风险的感知层了,明天就是完赛日了,笔者会做个汇整给大家参考,谢谢大家。 ...