前几天去了南昌和庐山,但是我并不想我的电脑在寝室闲着。因此我给他准备了一个大任务😆,它必不能闲着。人不在电脑旁必然需要点远程监测的方案,很早之间就想到了用邮箱来对程序运行情况进行监测提醒。一直拖了许久,这次需要用到就没办法了,熬了几小时(主要是打包分发花了时间,此前没做过)。但是,我并不知道我是否重复“造轮子了”🤗。
介绍:
简介
运行Python程序时,给你的定义的函数程序添加这个工具修饰器(一行代码),就可以在程序运行完成或者程序报错时,收到邮件提醒。
了解更多:
Github: https://github.com/Becomingw/Errome
PyPi:https://pypi.org/project/Errome/
Pypi镜像:https://libraries.io/pypi/Errome
使用示例:
这个程序跑了10个多小时。邮件(邮件模板让GPT写的)截图
心得经验:(不算教程,仅作记录)
打包前准备
①. 一个需要打包上传的Python库需要: 核心代码(库+ini.py文件)+ setup.py + MANIFEST.in
②. setup.py文件中关键的是:
from setuptools import setup, find_packages
# 这里这个setuptools 库是打包库的关键包
如果,库的内容包含非py的库内容。需要使用:
include_package_data=True
Errome的setup.py
from setuptools import setup, find_packages
with open('README.md', 'r', encoding='utf-8') as fp:
long_description = fp.read()
setup(
name='Errome',
version='0.2.2',
packages=find_packages(),
description='A program error or completion email notification tool.',
long_description=long_description,
long_description_content_type="text/markdown",
author='BecomingW',
author_email='[email protected]',
url='https://github.com/Becomingw/Errome.git',
include_package_data=True
)
# 这并不完全包含需要的关键变量,如dependence,python版本等都未指定。
③. MANIFEST.in放在与setup.py同一目录下,注意米名字拼写不能出错(我在拼写上出错,折磨了我好久😑)。
MANIFEST.in主要内容是指定打包进库的非py文件。
recursive-include Errome/templates *.html # 这是Errome的MANIFEST,导入的邮件模板。
上传PyPi:
注册pypi账号:
这个没啥解释的就是注册,然后验证邮箱啥的也没啥
通过2AF验证:
可以使用google Authenticator来绑定验证,这个算一个经验。
生成API访问密码:
账号:token
密码:py***
生成分发文件:
python3 setup.py sdist bdist_wheel
这样会生成一个dst文件夹,下有一个tar.gz文件和wheel文件。
接下来就是
上传到PyPi:(如果有多个Python环境,记住使用script文件夹加入Path的Python环境,不然会报无twine 命令)
twine upload dist/*
不算教程,上传PyPi教程网上很多,这里只做记录,只不过那个2AF验证有点烦人。网上教程大部分还是能用,不过都有点过时,具体遇到问题的话多看Pypi官方文档一般都能找到解决办法。