zoukankan      html  css  js  c++  java
  • setuptools使用

    setuptools是python标准的打包分发工具,通过编写简短的setup.py文件,能够轻松实现python应用的打包;

    1. setuptools安装

    2. 示例

    2.1 准备相关文件

    ├── demo
    │   ├── __init__.py
    │   └── module.py
    └── setup.py
    

    其中,setup.py文件中内容如下:

    from setuptools import find_packages, setup
    
    setup(
        name = 'demo',
        version = '0.0.1', 
        packages = find_packages()
    )
    
    • name = 'demo'表示打包后的包名为demo;
    • version表示包的版本号;
    • packages表示打包后的包,所依赖的包,find_packages()表示会自动查询当前目录下的所有包(即所有包含__init__.py文件的目录);

    其中,__init__.py为空文件,用于表示demo是一个包;

    其中,module.py是一个模块,内容随意,我这里是:

    def foo_module():
        print("foo_module")
    

    2.2 打包

    执行

    python setup.py bdist_egg
    

    完成后,新的目录结构如下:

    ├── build
    │   ├── bdist.linux-x86_64
    │   └── lib
    │       └── demo
    │           ├── __init__.py
    │           └── module.py
    ├── demo
    │   ├── __init__.py
    │   └── module.py
    ├── demo.egg-info
    │   ├── dependency_links.txt
    │   ├── PKG-INFO
    │   ├── SOURCES.txt
    │   └── top_level.txt
    ├── dist
    │   └── demo-0.0.1-py3.7.egg
    └── setup.py
    
    • build:
    • demo.egg-info:
    • dist: 该目录下是一个.egg文件,一种压缩格式;

    dist解压:

    执行:

    cd dist
    unzip -d tmp demo-0.0.1-py3.7.egg
    

    目录结构如下:

    tmp/
    ├── demo
    │   ├── __init__.py
    │   ├── module.py
    │   └── __pycache__
    │       ├── __init__.cpython-37.pyc
    │       └── module.cpython-37.pyc
    └── EGG-INFO
        ├── dependency_links.txt
        ├── PKG-INFO
        ├── SOURCES.txt
        ├── top_level.txt
        └── zip-safe
    
    • dist包含了demo.egg-infodemo两个文件夹下的文件;

    2.3 安装

    当程序打包完成之后,可以拿到相同的环境下进行安装;

    执行:

    python setup.py install
    

    就可以在当前的虚拟环境下有此包,如下:

    ***/base/lib/python3.7/site-packages
    

    2.4 使用

    在新的环境中安装成功后,使用方式如下:

    from demo import module
    
    module.foo_module()
    

    输出:

    foo_module
    

    2.5 卸载

    在安装成功的虚拟环境中卸载安装的包,方式如下:

    pip uninstall demo
    

    3. 进阶示例

  • 相关阅读:
    结构化数据上的 TopN 运算
    Excel 分组后计算
    主流开源 BI 产品对比
    职场人员该学什么程序语言
    Python 并不合适职场编程,SPL 才行
    v-if 和 v-show 到底有什么区别 何时用v-if 何时用v-show
    APP 在退出登录 页面 注意事项
    APP 项目,登录注册页面,注意事项
    input 文本内容 ,才用正则过滤后,内容没有实时更新 的 处理方法
    实现 长按复制粘贴文本
  • 原文地址:https://www.cnblogs.com/chenzhen0530/p/14843174.html
Copyright © 2011-2022 走看看