写python程序时常常要导入各种包,使用其中的模块或功能。我们如果有可以复用的功能或模块也可以发布成包,并安装在自己或他人电脑上,以供自己或别人使用。python发布包的步骤如下:

一、首先为模块创建一个文件夹

比如我有一个名为analyzelog.py的文件想发布成包,新建了一个文件夹AnalyzeLogTest(名字无所谓),并放入analyzelog.py文件

二、在新文件夹中创建一个名为setup.py的文件

这个文件包含有关发布的元素,增加如下代码 

from distutils.core import setup

setup(
name = 'analyzelog',
version = '1.0.0',
py_modules = ['analyzelog'],
author = 'zs',
author_email = 'XXXX',
url = 'xxxxx',
description = 'XXXXXXXXX',
)

开头先从python发布工具导入“setup”函数

接下来调用setup函数,并为setup函数传参。

name是模块的名字,version是版本号,py_modules是模块包含的文件名,是一个列表,剩下几项是作者、作者邮箱,网址,和模块的描述

setup.py创建好之后,就可以开始下一步了。

三、 构建一个发布版本

在命令行界面进入到新建的文件夹路径下,输入如下命令:(我用的windows,已将python的地址设置在系统环境变量中)

python setup.py sdist

如上图所示,python包就发布好了

四、将发布的包安装到本地

输入如下命令python setup.py install,如下图所示,就安装完成了。

从图中我们也可以看到python安装大体做了哪些工作:1. 把代码拷贝到了python主目录下的Lib\site-packages文件夹中;2. 编译代码成为中间代码,对于中间代码,只有要原代码有变化时,编译才会重新生成中间代码,原代码如果没有变化,编译时中间代码不会重新生成。

让我们回头看一下,新建的文件夹下有什么变化

最开始的时候里面有两个文件夹,analyzelog.py和setup.py

安装完成后里面多了几个文件和文件夹,如下图所示。

MANIFEST文件中包含发布中的文件列表,可以用记事本打看看一下,里面记录了analyzelog.py和setup.py

build文件夹及子文件夹lib存放的是原代码analyzelog.py

dist文件夹中存放的是发布包analyzelog-1.0.0.tar.gz

最后我们就可以在python代码中import之前安装的包,使用其中的模块或函数了。

发布python包的更多相关文章

  1. 在pypi上发布python包详细教程

    使用Python编程中Python的包安装非常方便,一般都是可以pip来安装搞定:pip install <package name>,我们自己写的python也可以发布在pypi上,很简 ...

  2. gitlab+jenkins自动发布Python包到私有仓储

    背景 有个私有仓储,地址为https://your.repo.com/pypi/ 代码存储在gitlab, 地址为https://gitlab.company.com/software.git CI为 ...

  3. 2019-02-20 在PyPI测试平台发布Python包

    参考Packaging Python Projects, 源码在nobodxbodon/test-package-for-pypi 包名/__init__.py: 测试变量 = "值&quo ...

  4. 将python包发布到PyPI和制作whl文件

    参考链接:wheel和egg的不同怎样将自己写的包传达到PyPi发布你自己的轮子 - PyPI打包上传实践PyPI官网上传包教程 wheel文件Wheel和Egg都是python的打包格式,目的是支持 ...

  5. python包管理工具他们之间的关系

    python包管理工具之间的关系 现在的python包管理工具有很多,非常混乱,必须理清他们之间的关系才能更好的使用python构建强大的包关系系统工具. 首先:python官方推荐的第三方库是PyP ...

  6. 纯Python包发布setup脚本编写示例

    如果你有多个模块需要发布,而它们又存在于多个包中,那么指定整个包比指定模块可能要容易地多.即使你的模块并不在一个包内,这种做法也行的通:你可以告诉Distutils从根包(root package)处 ...

  7. 在Pypi上发布自己的Python包

    使用Python编程的都知道,Python的包安装非常的方便,一般都是可以pip来安装搞定: sudo pip install <package name> pip的安装请移步:https ...

  8. 手把手教你发布一个Python包

    本文主题如下: 编写一个包(Python 源代码),但不是本文的重点. 编译包,观察编译后的文件. 发布包,发布的包可以有多种类型. 如何在 Pypi 中查看已发布的包 注意: 本文编写的包在 Pyt ...

  9. 实战教程:如何将自己的Python包发布到PyPI上

    1. PyPi的用途 Python中我们经常会用到第三方的包,默认情况下,用到的第三方工具包基本都是从Pypi.org里面下载. 我们举个栗子: 如果你希望用Python实现一个金融量化分析工具,目前 ...

随机推荐

  1. Actifio最新软件下载更新

    提供最近2个版本的软件. https://pan.baidu.com/s/10KajjJTMAKIHkRsfg3-A5g

  2. vue-router 路由跳转:和name配对的是params,和path配对的是query

    1.命名路由name搭配params,刷新页面参数会丢失 2.路由path搭配query,刷新页面数据不会丢失 3.接收参数使用this.$router,就能获取到参数的值

  3. 两台Linux服务器之间复制文件

    一.scp 1.简介 scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的 2.软件安装 ...

  4. Linux colrm命令详解

    Linux colrm命令 colrm用于从文件或标准输入中过滤掉指定的列.从标准输入设备读取书记,转而输出到标准输出设备.如果不加任何参数,则该指令不会过滤任何一行. 语法: colrm 参数 参数 ...

  5. operator用法:隐式类型转换

    operator它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换). 1.操作符重载C++可以通过operator实现重 ...

  6. voc-fcn-alexnet网络结构理解

    一.写在前面 fcn是首次使用cnn来实现语义分割的,论文地址:fully convolutional networks for semantic segmentation 实现代码地址:https: ...

  7. Tornado异步非阻塞的使用以及原理

    Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 非阻塞的方式和对 epoll 的运用,Tornado ...

  8. centos7 安装php gd库

    yum install php-gd vi /etc/php.ini 添加: extension=/usr/lib64/php/modules/gd.so

  9. MegaCLi命令总结

    MegaCli命令总结 MegaCli 版本8.00.29,raid卡为lsi 8888elp,固件11.0.1-0036 1    巡读 一MegaCli -adppr -enblauto  -a0 ...

  10. 20175236 2018-2019-2 《Java程序设计》第三周学习总结

    教材学习内容总结 类与对象 类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例 类:class是关键字,用来定义类. 类声明:例如class People. 对象的声明:类的名字 ...