zoukankan      html  css  js  c++  java
  • python如何发布自已pip项目

    python如何发布自已pip项目
    前言
    因为自已平时会把一个常用到逻辑写成一个工具python脚本,像关于时间字符串处理,像关于路径和文件夹遍历什么的工具。每一次新建一个项目的时候都要把这些工具程序复制到每个项目中,换一个电脑后还要从github生新下载后再复制到项目中,实在太麻烦。最后想想,还是建一个自已的pip项目会比较好。

    第一步:注册一个PyPi帐号
    PyPi注册网站

    在上边的注册网站上注册一个自已的帐号,注册好后在邮箱激活,一般注册流程都是这么操作了,这里就不多说了。

    第二步:在github上创建一个项目
    如果你还没有使用过github源码托管网站,可以先注册一个github的帐户再创建项目,我一般创建项目用的是官网提供的桌面工具Github Desktop.

    Github Desktop的下载地址:https://desktop.github.com

    github注册和创建新项目,这里也不说了,程序员的基本功。

    第三步:编写自已的python项目
    我这里只有一个timetool.py和pathtool.py两个文件
    祥情可以查看我的示例项目:
    https://github.com/fengmm521/pipProject

    先建一个目录,比如magetool,这个里边放的是你的项目代码

    在这个magetool目录里,新建一个__init__.py,这个文件里可以什么都不用写,然后就是你要发布的.py文件

    第四步:编写setup.py文件
    这里重点说明一下这个setup.py文件,因为整个pip项目的发布和上传都是基于这个setup.py文件完成的。

    大家可以看一下我示例项目的setup.py是怎么写的,其实我也是从网上下载别人写好的。

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-

    #############################################
    # File Name: setup.py
    # Author: mage
    # Mail: mage@woodcol.com
    # Created Time: 2018-1-23 19:17:34
    #############################################


    from setuptools import setup, find_packages

    setup(
    name = "magetool",
    version = "0.1.0",
    keywords = ("pip", "pathtool","timetool", "magetool", "mage"),
    description = "time and path tool",
    long_description = "time and path tool",
    license = "MIT Licence",

    url = "https://github.com/fengmm521/pipProject",
    author = "mage",
    author_email = "mage@woodcol.com",

    packages = find_packages(),
    include_package_data = True,
    platforms = "any",
    install_requires = []
    )
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    setup.py中重要的参数有5个:

    1.name
    name = “magetool”,这个name参数后边的就是你的项目代码所在目录,也是你pip要上传的项目名称,其他人用pip install xxx来安装时,后边的xxx就是你的这个magetool

    2.version
    version = “0.1.0”,你工具的版本号,后期你工具更新了,要用pip来更新包的时候,会更新比当前版本号高的新版本。

    下边是pip 更新包的命令

    pip install --upgrade <包的名字>
    pip install -U <包的名字>
    1
    2
    3.packages
    packages = find_packages(),这个参数是导入目录下的所有__init__.py包

    4.install_requires
    install_requires = [],这是一个数组,里边包含的是咱的pip项目引用到的第三方库,如果你的项目有用到第三方库,要在这里添上第三方库的包名,如果用的第三方版本不是最新版本,还要有版本号。

    第五步:打包自已的项目
    在代码编写完成,自已测试后没有问题了,就可以打包了。
    打包使用下边两个命令:

    我使用的是第二个

    $ python setup.py bdist_egg # 生成类似 edssdk-0.0.1-py2.7.egg,支持 easy_install
    $ python setup.py sdist # 生成类似 edssdk-0.0.1.tar.gz,支持 pip
    1
    2
    两个命令打包好之后都会生成build和dist两个目录,打包的文件会放在dist目录下,供后边上传到PyPi服务器

    第六步:上传到PyPi服务器
    在上传前,要建一个文件,$HOME/.pypirc,$HOME目录在linux或者mac系统下就是~/目录。在这里建一个.pypirc文件。里边的内容如下:

    [distutils]
    index-servers = pypi

    [pypi]
    username:你的PyPi用户名
    password:你的PyPi密码
    ~
    1
    2
    3
    4
    5
    6
    7
    因为不能使用python setup.py register进行上传,使用这个上传会报一个410的错误。所以要使用.pypirc文件保存你的PyPi用户信息,这时使用下载的twine就可以直接上传了。

    在别的地方找到的有说上传用python setup.py sdist upload命令,但在我这里用这个命令也会一直失败,所以我用下边的命令上传打包好的pip项目,我上传的是用第五步的,python setup.py sdist命令打包好的项目,

    上传好打包的pip安装包:

    twine upload dist/magetool-0.1.0.tar.gz
    1
    第七步:使用pip安装刚刚上传的包
    pip安装包我这里就不多说了,这个一般用python的都会的

    用pip安装上传的包:

    pip install magetool --user
    1
    –user参数的意思是安装给当电脑的当前用户,要不然会要求系统管理员权限才能安装。加了–user之后就不用sudo的管理员权限了。


    ————————————————
    版权声明:本文为CSDN博主「woodcol」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/fengmm521/article/details/79144407

  • 相关阅读:
    Hadoop深入学习:MapTask详解
    设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
    GIT使用教程与基本原理
    网络爬虫浅析
    字符串模式匹配sunday算法
    linux ---- diff命令
    递归树的算法分析
    二叉树非递归实现
    链表相邻元素交换
    明星问题
  • 原文地址:https://www.cnblogs.com/ExMan/p/11715019.html
Copyright © 2011-2022 走看看