在PyPI上发布自己的Python包(一)

2023-11-18

发布PyPI(简单)

#0 GitHub

https://github.com/Coxhuang/get_time

#1 环境

Python3.6
twine==1.13.0 # 需要pip下载 

#2 准备

#2.1 注册PyPI账号

https://pypi.org/

#2.2 安装环境

pip3 install twine

#3 开始

#3.1 新建文件夹

.
├── get_time # 文件夹
│   └── __init__.py # 把需要发布的代码放到里面
└── setup.py # 配置文件 

init.py

import datetime, time
import calendar

now = datetime.datetime.now()


def get_time(year=now.year,
             month=now.month,
             day=now.day,
             hour=now.hour,
             minute=now.minute,
             second=now.second,
             week=-1,
             last_day_of_month=False,
             type="time",
             detail=True):
    """

    :param year: 年 (默认今年)
    :param month: 月 (默认当月)
    :param day: 天 (默认今天)
    :param hour: 时 (默认当前时间)
    :param minute: 分 (默认当前时间)
    :param second: 秒 (默认当前时间)
    :param week: 星期x (默认-1,如果不等于-1,则day参数无效)
    :param last_day_of_month: 每个月的最后一天 (默认False)
    :param type: 输出类型 (time / str)
    :param detail: 是否输出时分秒? (默认输出时分秒)
    :return: 时间 
    """

    if week != -1:
        weekday = datetime.datetime(year, month, day, hour, minute, second)

        one_day = datetime.timedelta(days=1)
        while weekday.weekday() != 0:
            weekday -= one_day

        ret = weekday + datetime.timedelta(days=week - 1)

    else:

        if last_day_of_month:  # 每个月的最后一天
            day = calendar.monthrange(year, month)[1]

        if not detail:
            date = datetime.date(year, month, day)
        else:
            date = datetime.datetime(year, month, day, hour, minute, second)

        ret = date if type == "time" else str(date)

    return ret


def get_timestamp(detail=True):
    """
    获取当前时间戳 
    :param detail: True输出完整的时间戳/ False输出前10位(小数点之前)
    :return: 时间戳 
    """
    if detail:
        ret = time.time()
    else:
        ret = int(time.time())
    return ret


def timestamp_to_str(timestamp, strformat):
    """
    时间戳转字符串
    :param timestamp: 时间戳 
    :param strformat: 转换格式 (%Y-%m-%d %H:%M:%S)
    :return: 时间字符串 
    """
    ret = time.strftime(strformat, time.localtime(timestamp)) 

    return ret


def str_to_timestamp(timestr, strformat):
    """
    字符串转时间戳 
    :param timestr: 时间字符串 
    :param strformat: 转换格式 (%Y-%m-%d %H:%M:%S) 
    :return: 时间戳 (前10位)
    """
    ret = int(time.mktime(time.strptime(timestr, strformat)))

    return ret

setup.py

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

from setuptools import setup

setup(
    name='get-time', # 项目的名称,pip3 install get-time
    version='0.0.4', # 项目版本 
    author='黄民航', # 项目作者 
    author_email='gmhesat@gmail.com', # 作者email 
    url='https://github.com/Coxhuang/get_time', # 项目代码仓库
    description='获取任意时间/获取当前的时间戳/时间转时间戳/时间戳转时间', # 项目描述 
    packages=['get_time'], # 包名 
    install_requires=[],
    entry_points={
        'console_scripts': [
            'get_time=get_time:get_time', # 使用者使用get_time时,就睡到get_time项目下的__init__.py下执行get_time函数
            'get_timestamp=get_time:get_timestamp',
            'timestamp_to_str=get_time:timestamp_to_str',
            'str_to_timestamp=get_time:str_to_timestamp',
        ]
    } # 重点
)

#3.2 上传

打包

在项目的目录下(和刚刚新建setup.py同级目录)

python3 setup.py sdist build

20190401170244-image.png

上传

twine upload dist/*

20190401170134-image.png

20190401170532-image.png

#3.3 测试

pip3 insatll get-time==0.0.4
pip3 list # 查看安装过的包

20190401170741-image.png

20190401170904-image.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在PyPI上发布自己的Python包(一) 的相关文章

  • 无法在 Octave 3.8 Ubuntu 中安装 Octave-forge 其他包

    我是 Octave 的新手 尝试安装 杂项 包以使用 GNU 单元 安装失败 我试过 apt get 安装八度杂项 deb 软件包已安装 但未在 Octave 3 8 中列出 通过 gt gt pkg list 然后我尝试 gt pkg i
  • Java引用同一目录中的类

    我创建了一个PairJava 中的类 类似于 C 对 并且无法从不同的 java 文件引用它 我正在一个 Java 文件中工作 我们称之为fileA在同一目录中Pair class 另外 我还写过package current direct
  • 安装 mysql-community-server 时出现 GPG 密钥问题

    安装时mysql 社区服务器出现以下错误 Command sudo yum install mysql community server Error warning var cache yum x86 64 2 mysql57 commun
  • 在包中包含一个“哈希表”

    我正在整理一个我已经工作了近一年的包 我有一个音节查找函数所需的哈希表 哈希表实际上只是一个环境 我想我不是计算机高手 它是一个查找表 您可以在下面看到我创建它的函数 我有一个数据集DICTIONARY 约 20 000 个字 将在加载包时
  • 创建Python包并导入模块

    我正在尝试编写我的第一个 Python 包 几乎所有模块都需要使用 NumPy 我应该写吗import numpy在每个模块中或者包中是否有某个地方我可以将其导入一次 以便每个模块都可以使用它 最好的方法是什么 是的 只需将其导入到需要的地
  • 构建预配置的 debian 包

    我正在尝试构建一个 debian 软件包 它会自动配置我的所有计算机以使用相同的配置文件和设置 例如 我尝试设置诸如 alter etc default hostapd conf 之类的内容 我目前正在通过使用 dh install 将文件
  • R:从包中覆盖函数的正确方法是什么?

    我使用的是 R 包 其中有 2 个函数 f1 和 f2 其中 f2 调用 f1 我想覆盖函数f1 由于 R 2 15 和包中命名空间的强制使用 如果我只是获取新函数 它确实可以在全局环境中使用 即 只需在控制台中调用 f1 x 即可返回新结
  • 包(Python PIL/Pillow)已安装,但我无法导入它

    我想做一些图像处理 但遇到了问题 导入枕头模块似乎不起作用 我在这里找到了一个简单的脚本来检查安装了哪些软件包 我找到了它 但导入它似乎不起作用 这是我尝试运行的代码 import pip installed packages pip ge
  • 防止安装具有特定包名的 Android 应用程序

    我正在使用 android studio 开发两个 Android 应用程序 出于某种原因 我希望其中一个应用程序可以安装在设备上 我想我应该检查第二个应用程序的包名称并阻止它安装 有什么办法可以做到这一点吗 谢谢 您无法阻止任何应用程序的
  • 如何在 setup.py 中指定多个作者/电子邮件

    我们为 Twitter 应用程序编写了一个小包装 并将此信息发布到http pypi python org http pypi python org 但 setup py 仅包含一个用于指定作者的电子邮件 姓名的字段 我如何在以下字段中指定
  • Spyder 中的 ModuleNotFoundError

    我尝试在Spyder中导入biopython包并收到错误消息 ModuleNotFoundError No module named biopython 虽然安装了biopython 我还检查了 PYTHONPATH 在存储包的目录中设置了
  • 使用“npm install”的漏洞问题

    我已经使用安装了一个快速服务器express coserver命令 然后我使用 npm install 命令来安装其他节点包 依赖项 但我得到了这个结果 npm audit security report Manual Review Som
  • 创建流而无需从中创建物理文件

    我需要创建一个包含服务器上存在的文档的 zip 文件 我使用 Net Package 类来执行此操作 并创建一个新的 Package 即 zip 文件 我必须具有物理文件或流的路径 我试图不创建一个实际的 zip 文件 而是创建一个存在于内
  • 从 PyPI 安装我的 sdist 会将文件放在意外的位置

    我的问题是 当我将 Python 包上传到 PyPI 然后使用 pip 从那里安装它时 我的应用程序会崩溃 因为它将我的文件安装到与我简单地从本地 sdist 安装完全相同的包时完全不同的位置 从本地 sdist 安装会将文件放在我的系统上
  • 管理 2 个以上具有依赖关系的 Nodejs 包的开发

    我正在开发 2 个 node js 包 每个包都在自己的 git 存储库中管理 包裹B取决于套餐A 所以我的本地目录结构如下所示 A1 B node modules A2 如果我更改本地代码A1 我想测试一下B在将其推送到公共存储库之前 我
  • 如何将 lib 中的 jar 包含到 Netbeans 中的项目 jar 文件中?

    我正在使用一些 apache HttpClient jar 所以我将它们放在项目的 lib 目录中 当 Netbeans 编译项目时 它会复制 lib 并生成项目 jar 到 dist 目录中 但是当我使用 webstart 运行项目时 我
  • “以下对象被‘package:xxx’屏蔽”是什么意思?

    当我加载包时 我收到一条消息 The following object is masked from package xxx 例如 如果我加载testthat http www rdocumentation org packages tes
  • 如何/在哪里发布 Python 包

    如果一个人创建了一个有用的 Python 包 那么如何 在哪里发布 宣传它以供其他人使用 我已经把它放到了 github 上 但几周后谷歌也没有找到它 包装整洁完整 我制作它供我个人使用 不与其他人分享将是一种耻辱 这是 PyPI 指南 h
  • 从需求文件中安装 pip 失败,但可以一一安装

    我正在尝试使用 requests txt 文件通过以下命令安装一堆 python 依赖项 pip install r requirements txt requirements txt 文件包含以下包 pep8 selenium param
  • 为 Linux 安装 R 包时出错

    我试图在 R 3 3 上安装一个名为 rgeos 的包 但是当我输入 install packages rgeos 但它返回给我以下错误 其他包也会发生同样的情况 但不是所有包 gt installing source package rg

随机推荐