日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

一、前言

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

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

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

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

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

二、代碼

首先準(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": "過年"}, # 距離過年
{"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():
"""你好,摸魚人,工作再累,一定不要忘記摸魚哦 !"""
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_ = '''
你好,摸魚人,工作再累,一定不要忘記摸魚哦 !
有事沒事起身去茶水間去廊道去天臺(tái)走走,別老在工位上坐著。
多喝點(diǎ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)用大概一萬塊。
你晚一天進(jìn) ICU,就等于為你的家庭多賺一萬塊。少上班,多摸魚。\n
'''
print(f'{Fore.RED}{tips_}')
print(f'\t\t\t\t\t\t\t{Fore.YELLOW} 摸魚辦')


if __name__ == '__main__':
cli()

click 庫(kù)的使用

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

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

安裝

pip install click

click 的簡(jiǎ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)的名稱。
  • 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ā)布

安裝依賴

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 = '你好,摸魚人,工作再累,一定不要忘記摸魚哦! 有事沒事起身去茶水間去廊道去天臺(tái)走走,別老在工位上坐著。多喝點(diǎ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', # 開源協(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é)

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

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


網(wǎng)頁(yè)標(biāo)題:手把手教你開展Mofish庫(kù)(摸魚庫(kù))的打包發(fā)布
鏈接分享:http://m.5511xx.com/article/dhjcjjh.html