日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
手把手教你開(kāi)展Mofish庫(kù)(摸魚(yú)庫(kù))的打包發(fā)布

一、前言

要知道之前他就已經(jīng)寫(xiě)了一篇關(guān)于摸魚(yú)的文章,感興趣的小伙伴,可以前往:手把手教你使用Python打造一款摸魚(yú)倒計(jì)界面。

我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、薩嘎ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的薩嘎網(wǎng)站制作公司

如今他把這個(gè)摸魚(yú)做成了一個(gè)Python庫(kù),關(guān)于這個(gè)庫(kù)的使用之前已經(jīng)發(fā)布了文章,可以前往:盤(pán)點(diǎn)一個(gè)名為摸魚(yú)的Python庫(kù),一起來(lái)摸魚(yú)吧!

在評(píng)論區(qū)看到了【有點(diǎn)意思】大佬的留言,如下圖所示:

大概意思是把自己寫(xiě)的代碼,封裝成Python庫(kù),人人都可用那種,這里給安排上,這篇文章就是講如何打包發(fā)布的,一起來(lái)看看吧!

二、代碼

首先準(zhǔn)備好代碼,這個(gè)代碼,之前的文章就已經(jīng)分享了,這里不再贅述,代碼在這里了。

# -*- coding: utf-8 -*-
import datetime

import click
from zhdate import ZhDate as lunar_date


def get_week_day(date):
week_day_dict = {
0: '星期一',
1: '星期二',
2: '星期三',
3: '星期四',
4: '星期五',
5: '星期六',
6: '星期天',
}
day = date.weekday()
return week_day_dict[day]


def time_parse(today):
distance_big_year = (lunar_date(today.year, 1, 1).to_datetime().date() - today).days
distance_big_year = distance_big_year if distance_big_year > 0 else (
lunar_date(today.year + 1, 1, 1).to_datetime().date() - today).days

distance_5_5 = (lunar_date(today.year, 5, 5).to_datetime().date() - today).days
distance_5_5 = distance_5_5 if distance_5_5 > 0 else (
lunar_date(today.year + 1, 5, 5).to_datetime().date() - today).days

distance_8_15 = (lunar_date(today.year, 8, 15).to_datetime().date() - today).days
distance_8_15 = distance_8_15 if distance_8_15 > 0 else (
lunar_date(today.year + 1, 8, 15).to_datetime().date() - today).days

distance_year = (datetime.datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d").date() - today).days
distance_year = distance_year if distance_year > 0 else (
datetime.datetime.strptime(f"{today.year + 1}-01-01", "%Y-%m-%d").date() - today).days

distance_4_5 = (datetime.datetime.strptime(f"{today.year}-04-05", "%Y-%m-%d").date() - today).days
distance_4_5 = distance_4_5 if distance_4_5 > 0 else (
datetime.datetime.strptime(f"{today.year + 1}-04-05", "%Y-%m-%d").date() - today).days

distance_5_1 = (datetime.datetime.strptime(f"{today.year}-05-01", "%Y-%m-%d").date() - today).days
distance_5_1 = distance_5_1 if distance_5_1 > 0 else (
datetime.datetime.strptime(f"{today.year + 1}-05-01", "%Y-%m-%d").date() - today).days

distance_10_1 = (datetime.datetime.strptime(f"{today.year}-10-01", "%Y-%m-%d").date() - today).days
distance_10_1 = distance_10_1 if distance_10_1 > 0 else (
datetime.datetime.strptime(f"{today.year + 1}-10-01", "%Y-%m-%d").date() - today).days

time_ = [
{"v_": 5 - 1 - today.weekday(), "title": "周末"}, # 距離周末
{"v_": distance_year, "title": "元旦"}, # 距離元旦
{"v_": distance_big_year, "title": "過(guò)年"}, # 距離過(guò)年
{"v_": distance_4_5, "title": "清明節(jié)"}, # 距離清明
{"v_": distance_5_1, "title": "勞動(dòng)節(jié)"}, # 距離勞動(dòng)
{"v_": distance_5_5, "title": "端午節(jié)"}, # 距離端午
{"v_": distance_8_15, "title": "中秋節(jié)"}, # 距離中秋
{"v_": distance_10_1, "title": "國(guó)慶節(jié)"}, # 距離國(guó)慶
]

time_ = sorted(time_, key=lambda x: x['v_'], reverse=False)
return time_


@click.command()
def cli():
"""你好,摸魚(yú)人,工作再累,一定不要忘記摸魚(yú)哦 !"""
from colorama import init, Fore
init(autoreset=True) # 初始化,并且設(shè)置顏色設(shè)置自動(dòng)恢復(fù)
print()
today = datetime.date.today()
now_ = f"{today.year}年{today.month}月{today.day}日"
week_day_ = get_week_day(today)
print(f'\t\t {Fore.GREEN}{now_} {week_day_}')
str_ = '''
你好,摸魚(yú)人,工作再累,一定不要忘記摸魚(yú)哦 !
有事沒(méi)事起身去茶水間去廊道去天臺(tái)走走,別老在工位上坐著。
多喝點(diǎn)水,錢(qián)是老板的,但命是自己的 !
'''
print(f'{Fore.RED}{str_}')

time_ = time_parse(today)
for t_ in time_:
print(f'\t\t {Fore.RED}距離{t_.get("title")}還有: {t_.get("v_")}天')
tips_ = '''
[友情提示] 三甲醫(yī)院 ICU 躺一天平均費(fèi)用大概一萬(wàn)塊。
你晚一天進(jìn) ICU,就等于為你的家庭多賺一萬(wàn)塊。少上班,多摸魚(yú)。\n
'''
print(f'{Fore.RED}{tips_}')
print(f'\t\t\t\t\t\t\t{Fore.YELLOW} 摸魚(yú)辦')


if __name__ == '__main__':
cli()

click 庫(kù)的使用

注意到我們上面的文件代碼用到了 click 庫(kù)。

Python 內(nèi)置了一個(gè) Argparse 的標(biāo)準(zhǔn)庫(kù)用于創(chuàng)建命令行, 但使用起來(lái)有些繁瑣,Click 相比于 Argparse 可謂是小巫見(jiàn)大巫了。

安裝

pip install click

click 的簡(jiǎn)單使用

官方文檔的入門(mén)例子:

import click

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name', help='The person to greet.')
def hello(count, name):
"""Simple program that greets NAME for a total of COUNT times."""
for x in range(count):
click.echo('Hello %s!' % name)

if __name__ == '__main__':
hello()

  • @click.command() 使函數(shù) hello 成為命令行接口。
  • @click.option 的第一個(gè)參數(shù)指定了命令行選項(xiàng)的名稱(chēng)。
  • click.echo 方法和 python 內(nèi)置的print 方法相似。

使用方法:

打印 10 個(gè) 皮老板。

$ python hello.py --count 10 --name 皮老板    # 指定 count 和 name 的值
Hello 皮老板!
Hello 皮老板!
Hello 皮老板!
Hello 皮老板!
Hello 皮老板!
Hello 皮老板!
Hello 皮老板!
Hello 皮老板!
Hello 皮老板!
Hello 皮老板!

setuptool 打包發(fā)布

安裝依賴(lài)

pip install setuptools
pip install twine

打包上傳

python setup.py sdist
twine upload dist/*

登錄 pypi 賬戶并發(fā)布 python 庫(kù)

setup.py 示例

from setuptools import setup, find_packages

description = '你好,摸魚(yú)人,工作再累,一定不要忘記摸魚(yú)哦! 有事沒(méi)事起身去茶水間去廊道去天臺(tái)走走,別老在工位上坐著。多喝點(diǎn)水,錢(qián)是老板的,但命是自己的!'

setup(
name='mofish', # 庫(kù)名
version='1.0.0', # 版本號(hào)
description=description, # 短簡(jiǎn)介
long_description_content_type='text/markdown',
classifiers=[
'Development Status :: 4 - Beta',
'Environment :: Console',
'Intended Audience :: Developers',
'Intended Audience :: Information Technology',
'Intended Audience :: System Administrators',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3 :: Only',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Topic :: Internet',
'Topic :: Software Development :: Libraries :: Python Modules',
'Topic :: System :: Clustering',
'Topic :: System :: Distributed Computing',
'Topic :: System :: Monitoring',
'Topic :: System :: Systems Administration',
],
python_requires='>=3.7', # py 版本限制
author='PY-GZKY', # 作者
author_email='341796767@qq.com', # 郵件
url='https://github.com/PY-GZKY/Mofish', # git
license='MIT', # 開(kāi)源協(xié)議
packages=find_packages(), # 包
include_package_data=True,
entry_points="""
[console_scripts]
moyu=src.main:cli
""", # 啟動(dòng)命令行腳本的文件
install_requires=[
'click>=6.7',
'zhdate'
], # 限制安裝庫(kù)的版本

)

安裝并使用

pip install mofish
moyu

代碼倉(cāng)庫(kù)地址:

??https://github.com/PY-GZKY/Mofish??

總結(jié)

大家好,我是皮皮。這篇文章主要是給大家盤(pán)點(diǎn)了一個(gè)Python庫(kù),基于這個(gè)庫(kù),本文介紹了如何把自己寫(xiě)的代碼封裝成Python庫(kù),打包上傳,并且發(fā)布到pypi,到后面人人都可以用你的庫(kù)。

本文轉(zhuǎn)載自微信公眾號(hào)「Python爬蟲(chóng)與數(shù)據(jù)挖掘」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Python爬蟲(chóng)與數(shù)據(jù)挖掘公眾號(hào)。


本文標(biāo)題:手把手教你開(kāi)展Mofish庫(kù)(摸魚(yú)庫(kù))的打包發(fā)布
網(wǎng)站路徑:http://www.dlmjj.cn/article/dhjcjjh.html