今天突发奇想,整理一下发布个人开源项目到Pypi https://pypi.org/
本篇示例实现功能:在命令行输入时间戳,输出其对应的日期
eg:
input: timestamp 1599995476
output: 当前时间是: 2020-09-13 19:11:16

操作步骤

目录结构如下

timestamp
├── readme.md
├── setup.py
├── timestamp
│   ├── __init__.py
│   └── timestamp.py
  1. 当然是编写自己的逻辑代码啦!!!逻辑代码在timestamp.py.
import time
import datetime
import argparse
import sys


def strftime(timestamp, format_string='%Y-%m-%d %H:%M:%S'):
    return time.strftime(format_string, time.localtime(timestamp))


# 解析命令行参数
def get_argparse():
    parser = argparse.ArgumentParser(description='convert timestamp into time')
    parser.add_argument('v', help='timestamp', type=int)
    
    return parser.parse_args()


def main():
    parser = get_argparse()
    _timestamp = parser.v
    if _timestamp:
        print(f'当前时间是: {strftime(_timestamp)}')
    

if __name__ == "__main__":
    main()
    
  1. 使用 setuptools打包源码。

这里必须要有setup.py

#!/usr/bin/env python
# coding: utf-8
from setuptools import setup, find_packages

setup(
    name='timestamp-snail',  # 项目名称
    version='1.0.0',  # 版本
    author='Junlin Yang',  # 作者
    author_email='snail.yang@foxmail.com',  # 作者联系方式
    url='https://github.com/champion-yang/xxx',  # 项目的主页
    description='在终端对日期和时间进行相关操作',  # 项目简短介绍
    packages=find_packages(),  # 项目代码
    entry_points={  # 命令行程序入口
        'console_scripts': [
            'timestamp=timestamp:main',
        ]
    }
)

setup.py文件编写ok之后terminal 执行sudo python3 setup.py install
这样就把包timestamp安装在本地环境,可以执行pip freeze 进行查看
此时查看目录树:

├── build
│   ├── bdist.macosx-10.14-x86_64
│   └── lib
│       └── timestamp
│           ├── __init__.py
│           └── timestamp.py
├── dist
│   └── timestamp_snail-1.0.0-py3.7.egg
├── readme.md
├── setup.py
├── timestamp
│   ├── __init__.py
│   └── timestamp.py
└── timestamp_snail.egg-info
    ├── PKG-INFO
    ├── SOURCES.txt
    ├── dependency_links.txt
    ├── entry_points.txt
    └── top_level.txt

dist/timestamp_snail-1.0.0-py3.7.egg文件即为生成的发布包文件

  1. 使用twine 上传到 PyPi
  • 当然是注册账号咯。
  • HOME下创建文件.pypirc, 写入内容如下
mac@MacdeMBP ~ % cat .pypirc 
[pypi]
username:pypi账号
password:pypi密码
  • 安装一个小工具,twine,将软件包发布到PyPi
    pip install twine -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 然后进入当前项目执行twine dist/*

后记

至此一切都ok了,访问PyPi官网,可以进行查看,也可以下载了嗷!nice
在这里插入图片描述
最近发现了老齐的一种方式:
点我点我点我

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐