发布python包
写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包的更多相关文章
- 在pypi上发布python包详细教程
使用Python编程中Python的包安装非常方便,一般都是可以pip来安装搞定:pip install <package name>,我们自己写的python也可以发布在pypi上,很简 ...
- gitlab+jenkins自动发布Python包到私有仓储
背景 有个私有仓储,地址为https://your.repo.com/pypi/ 代码存储在gitlab, 地址为https://gitlab.company.com/software.git CI为 ...
- 2019-02-20 在PyPI测试平台发布Python包
参考Packaging Python Projects, 源码在nobodxbodon/test-package-for-pypi 包名/__init__.py: 测试变量 = "值&quo ...
- 将python包发布到PyPI和制作whl文件
参考链接:wheel和egg的不同怎样将自己写的包传达到PyPi发布你自己的轮子 - PyPI打包上传实践PyPI官网上传包教程 wheel文件Wheel和Egg都是python的打包格式,目的是支持 ...
- python包管理工具他们之间的关系
python包管理工具之间的关系 现在的python包管理工具有很多,非常混乱,必须理清他们之间的关系才能更好的使用python构建强大的包关系系统工具. 首先:python官方推荐的第三方库是PyP ...
- 纯Python包发布setup脚本编写示例
如果你有多个模块需要发布,而它们又存在于多个包中,那么指定整个包比指定模块可能要容易地多.即使你的模块并不在一个包内,这种做法也行的通:你可以告诉Distutils从根包(root package)处 ...
- 在Pypi上发布自己的Python包
使用Python编程的都知道,Python的包安装非常的方便,一般都是可以pip来安装搞定: sudo pip install <package name> pip的安装请移步:https ...
- 手把手教你发布一个Python包
本文主题如下: 编写一个包(Python 源代码),但不是本文的重点. 编译包,观察编译后的文件. 发布包,发布的包可以有多种类型. 如何在 Pypi 中查看已发布的包 注意: 本文编写的包在 Pyt ...
- 实战教程:如何将自己的Python包发布到PyPI上
1. PyPi的用途 Python中我们经常会用到第三方的包,默认情况下,用到的第三方工具包基本都是从Pypi.org里面下载. 我们举个栗子: 如果你希望用Python实现一个金融量化分析工具,目前 ...
随机推荐
- python selenium-webdriver 定位frame中的元素 (十三)
定位元素时经常会出现定位不到元素,这时候我们需要观察标签的上下文,一般情况下这些定位不到的元素存放在了frame或者放到窗口了,只要我们切入进去就可以很容易定位到元素. 处理frame时主要使用到sw ...
- Dubbo和Spring Cloud
1.Dubbo和Spring Cloud区别 1).通信方式不同 Dubbo使用RPC通信,Spring Cloud使用Http RestFul方式 2) 组成部分不同 组件 Dubbo Spring ...
- linux系统服务详解
下面现介绍一下运行次序和运行级别: 一个 Linux 系统的引导过程可以分为几个阶段.我们主要看看当内核加载后的那一个阶段.你可以运行runlevel 命令来确定您的系统当前的运行级,当内核被加载并开 ...
- php5.5.7添加pgsql,pdo_pgsql,swoole
一:下载php源码sudo wget cn2.php.net/distributions/php-X.X.X.tar.gz 二:解压 tar xzf /php-X.X.X.tar.gz 三:进入源码e ...
- 使用密钥登录CentOS系统(基于密钥的认证)
在Window客户端有多种软件可以登陆ssh,比如putty,xshelll,secureCRT,我就以xshell为例设置使用公钥和私钥验证登陆服务器. 使用Xshell密钥认证机制远程登录Linu ...
- Android Studio中绘制simpleUML类图详细说明及使用
一.Android Studio中安装simpleUML 1.下载simpleUML jar包 地址为:http://plugins.jetbrains.com/ 搜索 simpleUMLCE 2. ...
- CF963D Frequency of String
https://codeforces.com/problemset/problem/123/D 题目大意 给一个字符串 \(s\),每次询问一个字符串 \(m_i\) 和一个正整数 \(k_i\),问 ...
- sql查询统计
SELECT TOP 50 (select text from sys.dm_exec_sql_text(sql_handle)) as [SQL], CAST( ((qs.total_elapsed ...
- 打造高效的工作环境 – SHELL 篇
注:本文由雷俊(Javaer/Emacser)和我一起编辑,所以文章版权归雷俊与我共同所有,转载者必需注明出处和我们两位作者.原文最早发于酷壳微信公众号,后来我又做了一些修改,再发到博客这边. 程序员 ...
- Halcon Visinpro 破解版
目前测试过的破解版资料: halcon10 可用已测 完美破解 halcon12 可用已测 完美破解 halcon13 可用已测 完美破解 halcon17 可用已测 ...