zoukankan      html  css  js  c++  java
  • python打包到pypi小结

       如果你写了一个python库,想让别人快速使用你的库,最简单的方式就是使用python官方出品的库托管网站pypi了。

       pypi的全称是Python Package Index,是python的一个软件仓库。pypi可以帮助你找到和安装由社区开发和共享的python库。包的作者可以使用pypi来分发和共享其所开发的python库。如下图1是pypi的首页,可以看到pypi已经拥有近30w的用户以及超过16w的项目。

    图1:pypi首页

       1.一般来说,你发布的库中需要有一个setup.py文件,该文件主要包括库的各种信息,比如描述,作者,依赖以及各个模块等等。setup.py的编写可以参考如下资料:

    如果你的python项目比较复杂,包含了多个层级的复杂的模块,你可以参考下面的blog来编写setup.py的packages选项

    附个人项目NetCloud的setup.py示例:

    #!/usr/bin/env python
    # coding=utf-8
    from setuptools import setup
    
    setup(
        name="NetCloud",
        version="1.0.2",
        description='''网易云音乐综合爬虫,可以实现:
                        1.对于网易云音乐评论以及用户信息的爬取,并且可视化展示;
                        2.支持模拟登录,提供包括音乐,歌手,歌单,dj等全方位的api支持''',
        author='lyrichu',
        author_email='lyrichu@foxmail.com',
        url = "http://www.github.com/Lyrichu/NetCloud",
        maintainer='lyrichu',
        maintainer_email='lyrichu@foxmail.com',
        packages=['netcloud.analyse','netcloud.crawler',
                  'netcloud.login','netcloud.util',
                  'netcloud.demo','netcloud.test'],
        package_data={'netcloud.util': ['source/*']},
        install_requires=[
            'pycrypto',
            'requests',
            'pyecharts',
            'pandas',
            'jieba',
            'wordcloud',
            'scipy'
            ]
    )
    
    

    上面编写的setup.py中尤其需要注意的是packagespackage_data两个参数,这两个参数分别决定了python库模块的结构以及资源文件的打包。

       2.编写好了setup.py文件之后,可以使用

    python setup.py install
    

    命令将pyhton库安装到本地,但是如果需要将库上传到pypi进行托管的话,则需要将库代码以及资源文件进行统一打包,打包一般有多种打包格式,常见的有源码包(.tar.gz文件)和预编译跨平台包(.whl文件),源码包以及预编译包的打包命令如下:

    # 源码包,这会得到一个.tar.gz的文件
    python setup.py sdist build
    # 预编译包,这会得到一个.whl的文件
    python setup.py bdist_wheel --universal
    

       3.上传到pypi

    在你上传打包文件到pypi之前,你应该先去注册一个pypi的账号。这个很简单,直接去官网注册就可以了。上传到pypi有两种方式:

    • 使用setuptools工具,具体命令如下:
    # 上传源码包
    python setup.py sdist upload
    # 上传预编译包
    python setup.py bdist_wheel upload
    

    简单来说,相比setuptools,twine是一个更加安全和强大的pypi包发布工具,具体介绍和用法可以参考官方文档。

    twine 上传到pypi的命令如下:

    # 首先安装twine
    sudo pip install twine
    # 上传打包好的文件到pypi
    twine upload dist/*
    

    twine上传的过程中会提示你输入pypi的用户名和密码,直接按照提示输入即可。正常情况下你就可以成功发布你的pyhton库了。
    发布完成之后,你就可以使用pip命令安装你自己的库了,你可以试着安装并测试一下你的库在本机是否可以正常工作。

  • 相关阅读:
    牛影传说【线段树+BFS序运用】
    动态规划 :传纸条
    CQYZ-OJ P1377 危险的组合
    使用 git 管理你的配置文件
    Exponential Distribution
    初尝 C++ 类设计
    Android刷机的一般步骤
    重装 Linux 记录
    Linux 折腾记录 (非正式)
    最大熵对应的概率分布
  • 原文地址:https://www.cnblogs.com/lyrichu/p/10300440.html
Copyright © 2011-2022 走看看