美文网首页
Flask 源码解析-1.安装配置

Flask 源码解析-1.安装配置

作者: Sisyphus235 | 来源:发表于2019-07-14 13:29 被阅读0次

1.源码结构

flask 的安装配置符合 python package 的基本模式,写在源码安装包的最外层路径 setup.py 文件中

image

artwork/ 用于存放 flask logo
docs/ 用于存放文件说明
examples/ 用于存放代码示例
src/ 用于存放源码
tests/ 用于存放测试代码

2.包安装

setup.py 是 python 程序用于跨平台安装的说明
命令行中的 make && make install 会被翻译为 python setup.py build && python setup.py install

一些 package 是纯编译后的字节码,可以直接安装,
另一些包含源码,需要本地编译器(例如 gcc 或者 cl)和 python interfacing module (例如 swig 或者 prex) 编译

setup.py 往往是和 pip install 平行的另一个选项,当 pip install fail 的时候可以用 setup.py 来安装
简单说明:setup.py 类似于 install functions 中的 __main__

3.setup.py

该文件的核心代码解析如下:
setup()setup.py 的核心代码,首先定义了项目基本信息,包括发布包的名字、版本、项目主页、证书、作者等。开源项目的项目主页一般会链接到 github,gitlab,bitbucket 等处。

setup(
    name='Flask',  # 发布包的名字
    version=version,  # 包版本
    url='https://www.palletsprojects.com/p/flask/',  # 项目主页
    project_urls={
        "Documentation": "https://flask.palletsprojects.com/",
        "Code": "https://github.com/pallets/flask",
        "Issue tracker": "https://github.com/pallets/flask/issues",
    },
    license="BSD-3-Clause",  # 证书
    author="Armin Ronacher",  # 作者
    author_email="armin.ronacher@active-4.com",  # 作者联系方式
    maintainer="Pallets",  # 维护者
    maintainer_email="contact@palletsprojects.com",  # 维护者联系方式
    description="A simple framework for building complex web applications.",  # 项目描述
    long_description=readme,  # 项目详细描述
    classifiers=[
        "Development Status :: 5 - Production/Stable",
        "Environment :: Web Environment",
        "Framework :: Flask",
        "Intended Audience :: Developers",
        "License :: OSI Approved :: BSD License",
        "Operating System :: OS Independent",
        "Programming Language :: Python",
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.5",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
        "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
        "Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
        "Topic :: Software Development :: Libraries :: Application Frameworks",
        "Topic :: Software Development :: Libraries :: Python Modules",
    ]
)

然后 setup() 定义了 package 的源码信息,packages=find_packages("src"),通常这一步可以自动检索,这里自动检索 src 目录下的包,只有 flask,也可以指定项目的包,比如 packages="flask/src/flask"

setup(
    packages=find_packages("src"),  # 包中需要包含的引用包
    package_dir={"": "src"},
    include_package_data=True,
    python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*",
    install_requires=[  # 安装需求
        "Werkzeug>=0.15",
        "Jinja2>=2.10.1",
        "itsdangerous>=0.24",
        "click>=5.1",
    ],
    extras_require={
        "dotenv": ["python-dotenv"],
        "dev": [
            "pytest",
            "coverage",
            "tox",
            "sphinx",
            "pallets-sphinx-themes",
            "sphinxcontrib-log-cabinet",
            "sphinx-issues",
        ],
        "docs": [
            "sphinx",
            "pallets-sphinx-themes",
            "sphinxcontrib-log-cabinet",
            "sphinx-issues",
        ],
    },
    # 控制台启动入口,定位到入口函数,这里的路径是 clask.cli,函数名是 main
    entry_points={"console_scripts": ["flask = flask.cli:main"]}
)

相关文章

  • Flask 源码解析-1.安装配置

    1.源码结构 flask 的安装配置符合 python package 的基本模式,写在源码安装包的最外层路径 s...

  • flask应用将session存储到redis中

    1.安装依赖包 2.加入配置 3.使用app初始化flask_session.Session 完整源码

  • flask/odoo/werkzeug的url mapping

    参考:Werkzeug库——routing模块flask 源码解析:路由odoo(8.0)源码werkzeug(0...

  • 解决Flask+Vue跨域请求问题

    配置Flask# 安装flask_corspip install flask_corsfrom flask_cor...

  • 用flask发送QQ邮件

    首先直接贴上代码 1.安装 Flask-Mail 2.Flask-Mail SMTP服务器的配置 各项配置参照下图...

  • flask 源码解析:响应

    6.flask 源码解析:响应 response 简介 在 flask 应用中,我们只需要编写 view 函数,并...

  • flask05

    一、flask-debugtoolbar 官网 安装 -配置 使用 二、flask-caching 问题 安装 配...

  • Redis

    一、安装 1. 官网下载源码 2. 安装依赖包 3. 下载源码包 3. 解压安装 配置 redis 编辑配置文件 ...

  • flask插件相关

    一、flask-debugtoolbar 官网 安装 配置 使用 二、flask-caching 问题 官网 安装...

  • Flask与ajax跨域请求问题

    使用flask写接口的时候出现了跨域问题,记一下解决方法 1.配置CORS,在后台配置响应头 安装flask_co...

网友评论

      本文标题:Flask 源码解析-1.安装配置

      本文链接:https://www.haomeiwen.com/subject/owvbkctx.html