前几天去了南昌和庐山,但是我并不想我的电脑在寝室闲着。因此我给他准备了一个大任务😆,它必不能闲着。人不在电脑旁必然需要点远程监测的方案,很早之间就想到了用邮箱来对程序运行情况进行监测提醒。一直拖了许久,这次需要用到就没办法了,熬了几小时(主要是打包分发花了时间,此前没做过)。但是,我并不知道我是否重复“造轮子了”🤗。

介绍:

简介

运行Python程序时,给你的定义的函数程序添加这个工具修饰器(一行代码),就可以在程序运行完成或者程序报错时,收到邮件提醒。

了解更多:

Github: https://github.com/Becomingw/Errome

PyPi:https://pypi.org/project/Errome/

Pypi镜像:https://libraries.io/pypi/Errome

使用示例:

这个程序跑了10个多小时。邮件(邮件模板让GPT写的)截图

use_

心得经验:(不算教程,仅作记录)

打包前准备

①. 一个需要打包上传的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官方文档一般都能找到解决办法。


怀揣梦想,翻越山海