python 制作自定义包并安装到系统目录的方法


Posted in Python onOctober 27, 2018

python 中的包的概念跟c++中的namespace很相似,在大型的工程开发中,多个开发人员很容使用相同的函数名,为了避免相同函数名带来的问题,就引入了包的概念。

在看别人写的程序中经常看到形如“from xx import yy”xx就是包

制作一个本地使用的包

建立一个文件夹并命名为dl,文件夹名"dl"就是我们的包名,在文件夹内部新建一个“__init__.py”(注意init左右两边都是两个底线符号),在文件夹下添加自己的模块即可,代码目录如下,a.py中存放test_a函数,b.py中存放test_b函数

python 制作自定义包并安装到系统目录的方法

在dl同级目录中添加要使用包的测试文件,并测试

测试代码如下:

<code class="language-python">from dl import a,b 
 
a.test_a() 
b.test_b()</code>

可以发现能正常执行包dl中模块a和模块b中的函数(包是可以嵌套的,包中可以再添加包)

_init__.py中可以控制当前包都有哪些模块可以导出,如果__init__.py中什么内容都没有,表示当前包中所有的模块都可以导出,其他模块可以通过“from xx import *”的方式使用该包。

在__init__.py中添加“__all__ = ['a','b']”表示当前包内只有a,b两个模块可以导出

制作并安装包

在包dl同级的目录中创建setup.py

<code class="language-python">from distutils.core import setup 
setup(name="testModule", version="18.0.4", description="test to install module", author="szfhy", py_modules=['dl.a','dl.b', 'dl.network.facenet'])</code>

制作包执行命令 python setup.py build

python 制作自定义包并安装到系统目录的方法

生成压缩包 python setup.py sdist

python 制作自定义包并安装到系统目录的方法

解压缩包,并安装 sudo python setup.py install

进入python终端测试:

python 制作自定义包并安装到系统目录的方法

功能一切正常。大功告成!

以上这篇python 制作自定义包并安装到系统目录的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python处理json数据中的中文
Mar 06 Python
Python实现文件内容批量追加的方法示例
Aug 29 Python
Selenium定位元素操作示例
Aug 10 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
Nov 23 Python
python线程定时器Timer实现原理解析
Nov 30 Python
Python3 把一个列表按指定数目分成多个列表的方式
Dec 25 Python
Pytorch 之修改Tensor部分值方式
Dec 27 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
Django models文件模型变更错误解决
May 11 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
python爬取网页版QQ空间,生成各类图表
Jun 02 Python
教你如何用Python实现人脸识别(含源代码)
Jun 23 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 #Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 #Python
用Python实现筛选文件脚本的方法
Oct 27 #Python
基于python指定包的安装路径方法
Oct 27 #Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 #Python
Python利用递归实现文件的复制方法
Oct 27 #Python
python实现本地图片转存并重命名的示例代码
Oct 27 #Python
You might like
PHP文件下载类
2006/12/06 PHP
php递归创建和删除文件夹的代码小结
2012/04/13 PHP
Symfony控制层深入详解
2016/03/17 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
JBL英国官网:JBL UK
2018/07/04 全球购物
出国留学介绍信
2014/01/13 职场文书
幼儿园中秋节活动方案2013
2014/01/29 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
小班上学期评语
2014/05/05 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书
通用员工手册范本
2015/05/14 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js
python中使用redis用法详解
2022/12/24 Redis