python自定义模块打包、安装、卸载总结

前言

在写项目级别的工程时候,需要将常用的函数封装成一个工具文件中,作为一名数据仔,通常只是写写脚本,而且写脚本额位置也不是很固定,这个时候怎么办呢?怎么能够一劳永逸呢?怎么能随心所欲的import呢?
那么,这个时候,你需要把你的工具函数打包成一个模块,集成到python模块中。

1、打包与安装

作为一个数据分析仔,和时间序列数据打交道是在平常不过了,下面有一个获取日期对应是星期几的函数为列子,将其打包,我们便可以随时import,随后调用。

步骤
(1)创建一个文件夹,文件夹里面分别有工具函数的脚本文件,以及setup文件

在这里插入图片描述

(2)编写setup文件
from distutils.core import setup
setup(
	#这两个是必须的
	name = 'katyusha_utils',
	py_modules= ['katyusha_utils'],
	#以下可有可无
	version = '1.0.0',
	author = '',
	author_email = '',
	url = '',
	description = 'A simple function',
)
(3)编写katyusha_utils文件,功能是判断日期对应是星期几
```py
# -*- coding:utf-8 -*-

import datetime

def get_week_day(date_time):
	'''
		parma:data_time,日期格式2019-01-01
		return:该日期对应的是星期几
	'''
	if type(date_time) is str:
		date = datetime.datetime.strptime(date_time,"%Y-%m-%d")
	else:
		date = date_time
	week_day_dict = {
		0 : u'星期一',1 : u'星期二',2 : u'星期三',
		3 : u'星期四',4 : u'星期五',5 : u'星期六',6 : u'星期天'
	}
	day = date.weekday()
	return week_day_dict[day]
(4)打包,cmd命令行切换到脚本所在目录,输入 python setup.py install

在这里插入图片描述

(5)验证

在这里插入图片描述
在这里插入图片描述

sublime 和jupter-notebool里面展现出来的结果都箱单完美,打包、安装大功告成。

2、卸载

在这里插入图片描述

找到在对应目录删除该文件即可

在这里插入图片描述
在这里插入图片描述

3、最粗暴的方法

前面我们删除包,是找到对应目录删除,那么我们可以不以直接将我们的工具函数文件放到对应的site-packages文件夹下呢?
答案是可以的,我直接把katyusha_utils.py文件放到site-packages文件夹下
在这里插入图片描述

效果依然一样
然后又出来个大胆的想法,可不可以直接修改在site-packages文件夹下的katyusha_utils.py文件呢?答案也是可以的

我们先增加一个获取日期间隔天数的函数,直接在site-packages文件夹下的katyusha_utils.py上修改

def get_interval_day(end_time,begin_time):
	'''
	:param end_time:最晚的天数
	:param begin_time: 最早的天数
	:return:    时间间隔天数
	'''
	interval = datetime.datetime.strptime(end_time,'%Y-%m-%d')-datetime.datetime.strptime(begin_time,'%Y-%m-%d')

	return interval.days

在这里插入图片描述

结果同样非常完美,但是不建议用这种粗暴的方法,万一出现文件误删、代码误改,(虽然不会出现数据库从删除到跑路的悲剧,但是是一件令人伤心的事情。)
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值