python程序打包为egg——setuptools模块

一、创建包

  • 新建文件夹my-package,文件夹下创建如下setup.py(务必为此名字)文件

    
    # encoding: utf-8
    
    from setuptools import setup, find_packages
    
    setup(
        name="demo",  # egg包名
        version="0.0.9",
        description="get http headers",
        author="heroicai",
        author_email="[email protected]",
        zip_safe=False,
        license='MIT',
    
        install_requires=['requests>=2.7.0', ],  # 依赖包
    
        # 包含src中所有的包,并排除一些特定的包
        packages=find_packages("src",
                               exclude=["*.tests", "*.tests.*"]),
        package_dir={"": "src"},  # 告诉setuptools在src目录下找包
        package_data={
            "": ["*.txt"],  # 任何包中含有txt的文件
            "demo": ["data/*.dat", "doc/*.txt"],  # demo包中data目录下的dat文件
        }
    )
  • 将程序的源代码均置于src文件夹下,该文件夹包含demo包和该包对应的数据及文档文件,最终目录结构如下图:

    这里写图片描述


二、安装包

  • 1、进入my-package目录,查看python setup.py命令帮助

    这里写图片描述

  • 2、根据提示,执行python setup.py --help-commands命令查看更详细的帮助。从帮助文档可以看出,bdist_egg命令可将包打包为egg

    这里写图片描述

  • 3、执行python setup.py -q bdist_egg完成egg打包,打包后my-package目录如下图,可见打包过程中新建了builddist文件夹,其中dist文件夹下,包含demo-0.0.9-py2.egg(ps: 同理可使用python setup.py -q bdist_wininst 打包为exe可执行文件,此方法可直接在windows上像普通程序一样双击完成安装)

    打包

    : 用zip软件解压生成的demo-0.0.9-py2.7e包,查看该egg包目录结构如下:

    这里写图片描述

  • 4 为了不受本地已有环境的干扰,此处选择在虚拟工作环境my-proj-env中安装demo包:首先将my-package文件夹放入虚拟工作环境中;接着进入my-package目录,执行python setup.py install,安装过程中会自动下载demo包依赖的requests包

    这里写图片描述

    这里写图片描述

    ps:另外一种手动安装egg包的方式是:将demo-0.0.9-py2.egg包直接放到虚拟工作目录的lib > site-packages路径下,并在easy-install.pth文件添加egg包路径引用,如下图:

    这里写图片描述

  • 5 验证demo包是否安装:如下图所示,不仅成功安装demo包,对应的依赖包requests也一并安装完毕。

    这里写图片描述


三、卸载包

  • 执行 pip uninstall demo命令,即可完成卸载demo包

    这里写图片描述

四、总结


  • 静默打包

python setup.py -q bdist_egg

  • 静默安装包

    python setup.py -q install

    PSpip包推荐用pip install --no-deps .(注意:结尾有个.,代表当前路径) 代替 python setup.pyinstall,并且将依赖的包写入setup_requires.txt文件,再调用pip install -r setup_requires.txt 完成依赖包安装

  • 卸载安装包

    pip uninstall demo


  • 这里写图片描述


    参考

    [1] https://pythonhosted.org/an_example_pypi_project/setuptools.html
    [2] http://python-packaging.readthedocs.org/en/latest/minimal.html
    [3] http://python-packaging-user-guide.readthedocs.org/en/latest/installing/

    发布了27 篇原创文章 · 获赞 4 · 访问量 3万+

    猜你喜欢

    转载自blog.csdn.net/caiguoxiong0101/article/details/50285279