python 如何编写一个自己的包

先写function 内容

package/wadepypk$ ls
__init__.py f1.py f2.py

f1.py

    def show():
print("in pkg f.show()")

f2.py

    def show():
print("in pkg f.show()")

init.py

    __all__ = ['f1','f2']

上层目录建立一个setup.py

    from distutils.core import setup

    setup(
name='wadepypk',
version='1.0',
description='This is a test of the setup',
author='huoty',
author_email='no7david123@gmail.com',
url='https://www.deng.io',
packages=['wadepypk']
)

build

python setup.py build

打包

python setup.py sdist

得到一个wadepypk-1.0.tar.gz

使用

tar -zxvf wadepypk-1.0.tar.gz
cd wadepypk-1.0
python setup.py install

则安装到本地的目录里面

当然也可以在作为git 项目直接upload 到git repo,然后再git clone 去分发

python具体代码调用

>>> from wadepypk import f1,f2
>>> f1.show()
in pkg f.show()
>>> f2.show()
in pkg f.show()

升级包

修改下源码

f2.py

    def show():
print("in pkg f2.show()")

重新 build, sdist ,install ,setup

退出python 终端,不然仍然使用cache 里面的1.0包版本

    >>> from wadepypk import f1,f2
>>> f2.show()
in pkg f2.show()

原来的"in pkg f.show()" 已经改为 "in pkg f2.show()"

python 如何编写一个自己的包的更多相关文章

  1. Python学习 - 编写一个简单的web框架(一)

    自己动手写一个web框架,因为我是菜鸟,对于python的一些内建函数不是清楚,所以在写这篇文章之前需要一些python和WSGI的预备知识,这是一系列文章.这一篇只实现了如何处理url. 参考这篇文 ...

  2. 使用Python来编写一个简单的感知机

    来表示.第二个元素是表示期望输出的值. 这个数组定义例如以下: training_data = [  (array([0,0,1]), 0),  (array([0,1,1]), 1),  (arra ...

  3. Python学习 - 编写一个简单的web框架(二)

    在上一篇日志中已经讨论和实现了根据url执行相应应用,在我阅读了bottle.py官方文档后,按照bottle的设计重写一遍,主要借鉴大牛们的设计思想. 一个bottle.py的简单实例 来看看bot ...

  4. Python Django 编写一个简易的后台管理工具4-添加admin模版

    导入admin后台模版 可以在网上任意搜索模版,我这里也提供一个地址github 拷贝admin后台的html文件至项目的templates文件夹 创建static文件夹,将admin后台的js,im ...

  5. Python Django 编写一个简易的后台管理工具3-运行项目

    编写view页面 def hello(request): return render(request,'hello.html') 编写html页面 <!DOCTYPE html> < ...

  6. Python Django 编写一个简易的后台管理工具1-安装环境

    安装python环境 MAC 一般都会自带 Python2.x版本 的环境,你也可以在链接 https://www.python.org/downloads/mac-osx/ 上下载最新版安装. 安装 ...

  7. Python Django 编写一个简易的后台管理工具2-创建项目

    django-admin 创建项目 pycharm 创建项目

  8. 【Python】Java程序员学习Python(十)— 类、包和模块

    我觉得学习到现在应该得掌握Python的OOP编程了,但是现在还没有应用到,先留一个坑. 一.类和对象 说到类和对象其实就是在说面向对象编程,学完Java以后我觉得面向对象编程还是很不错的,首先封装了 ...

  9. 为Python编写一个简单的C语言扩展模块

    最近在看pytorh方面的东西,不得不承认现在这个东西比较火,有些小好奇,下载了代码发现其中计算部分基本都是C++写的,这真是要我对这个所谓Python语音编写的框架或者说是库感觉到一丢丢的小失落,细 ...

随机推荐

  1. Git实操

    使用git首先要理解工作区(working).暂存区(stage或者index).和版本库(repo区),很多命令都是和这三个概念相关的. git init 初始化git仓库,会生成默认的.git文件 ...

  2. centos7 下安装mysql教程

    最近要在centos服务器上配置环境,在部署mysql的时候,碰到各种各样的问题,网上博客文章也是有各种坑,目前发现一个比较好的博客: https://blog.csdn.net/xiaomojun/ ...

  3. 如何查看tomcat的支持的jdk、servlet、jsp的版本

    解压servlet-api 查看 可以看出,支持的servlet版本是4.0,jdk是1.8

  4. pycharm中连接数据库常见问题

    pymysql.err.InterfaceError: (0, '')解决办法   导致这个错误的原因是通过pymysql连接MySQL,没有关闭连接的操作,所以短时间内不会出问题,长时间保持这个连接 ...

  5. Ruby中puts,print,p的区别

    如果字符串的行尾没有包含换行符,puts就会添加一个,但print不会: print会精确打印内容并让光标留在末尾(在某些系统平台,在程序输出的末尾会自动换行): p会输出一个审查字符串,它通常会包含 ...

  6. 根据图片URL获取图片的尺寸【Swift语言实现】

    import UIKit extension UIImage { /// 获取网络图片尺寸 /// /// - Parameter url: 网络图片链接 /// - Returns: 图片尺寸siz ...

  7. linux find命令-print0和xargs中-0使用技巧

    文章是转载的,原文很精彩,我对其中个别地方没有快速理解,我在此予以补充,方便后续回顾理解. 本文介绍了linux find命令中-print0和xargs中-0用法技巧,一些find命令的使用经验,需 ...

  8. ecside中<c:table>使用

    <ec:table action="sjzc/tbWaterproject!list.do" items="objList" var="tbWa ...

  9. pandas 常用函数

  10. Docker 学习新手笔记:从入门到放弃

    本文记录的是作为一个新手,从了解 Docker 是什么.Docker 技术包含哪些概念到上手使用.安装以及发布 Docker 镜像的整个过程.作者在学习过程中参阅了诸多文档和教程,在此一并感谢,与此同 ...