python模块安装包_制作python模块安装包[转载自刘天斯]
python的第三方模块越来越丰富,涉及的领域也非常广,如科学计算、图片处理、web应用、GUI开发等。当然也可以将自己写的模块进行打包或发布。一简单的方法是将你的类包直接copy到python的lib目录,但此方式不便于管理与维护,存在多个python版本时会非常混乱。现介绍如何编写setup.py来对一个简单的python模块进行打包。
一、编写模块
进入项目目录
#cd /home/pysetup
#vi foo.py
view plain print ?
class MyClass():
def __init__(self):
self.blog = "http://blog.liuts.com"
def printblog(self):
print self.blog
def printBblog(self):
print self.blog.swapcase()
二、编写setup.py
#vi setup.py
view plain print ?
from distutils.core import setup
setup(name='Myblog',
version='1.0',
description='My Blog Distribution Utilities',
author='Liu tiansi',
author_email='liutiansi@gmail.com',
url='http://blog.liuts.com',
py_modules=['foo'],
)
更多参数说明见表:
三、setup.py参数说明
引用
#python setup.py build # 编译
#python setup.py install #安装
#python setup.py sdist #生成压缩包(zip/tar.gz)
#python setup.py bdist_wininst #生成NT平台安装包(.exe)
#python setup.py bdist_rpm #生成rpm包
或者直接"bdist 包格式",格式如下:
引用
#python setup.py bdist --help-formats
--formats=rpm RPM distribution
--formats=gztar gzip'ed tar file
--formats=bztar bzip2'ed tar file
--formats=ztar compressed tar file
--formats=tar tar file
--formats=wininst Windows executable installer
--formats=zip ZIP file
四、打包
#python setup.py sdist
引用
running sdist
warning: sdist: manifest template 'MANIFEST.in' does not exist (using default file list)
warning: sdist: standard file not found: should have one of README, README.txt
writing manifest file 'MANIFEST'
creating Myblog-1.0
making hard links in Myblog-1.0...
hard linking foo.py -> Myblog-1.0
hard linking setup.py -> Myblog-1.0
creating dist
tar -cf dist/Myblog-1.0.tar Myblog-1.0
gzip -f9 dist/Myblog-1.0.tar
removing 'Myblog-1.0' (and everything under it)
提示两条warning可以忽略,不影响打包,当然一个完善的项目必须有README及MANIFEST.in(项目文件清单)文件。
#ls dist
Myblog-1.0.tar.gz
五、安装
#tar -zxvf Myblog-1.0.tar.gz
#cd Myblog-1.0.tar.gz
#python setup.py install (此命令大家再熟悉不过了)
引用
running install
running build
running build_py
creating build/lib.linux-x86_64-2.6
copying foo.py -> build/lib.linux-x86_64-2.6
running install_lib
copying build/lib.linux-x86_64-2.6/foo.py -> /usr/local/lib/python2.6/dist-packages
byte-compiling /usr/local/lib/python2.6/dist-packages/foo.py to foo.pyc
running install_egg_info
Writing /usr/local/lib/python2.6/dist-packages/Myblog-1.0.egg-info
六、测试
引用
>>> from foo import MyClass
>>> app=MyClass()
>>> app.print printblog()
>>> app.printblog()
http://blog.liuts.com
>>> app.printBblog()
HTTP://BLOG.LIUTS.COM
>>>
如何使用和制作 Python 安装模块(setup.py)
分类: Python 2011-07-08 14:16 10829人阅读 评论(0) 收藏 举报
python import module windows build java
Python模块的安装方法:
1. 单文件模块:直接把文件拷贝到$python_dir/lib
2. 多文件模块,带setup.py:python setup.py install
3. egg文件,类似Java的jar:
1) 下载ez_setup.py,运行python ez_setup
2) easy_install *.egg
虽然Python的模块可以拷贝安装,但是一般情况下推荐制作一个安装包,即写一个setup.py文件来安装。
setup.py文件的使用:
% python setup.py build #编译
% python setup.py install #安装
% python setup.py sdist #制作分发包
% python setup.py bdist_wininst #制作windows下的分发包
% python setup.py bdist_rpm
setup.py文件的编写:
setup.py中主要执行一个 setup函数,该函数中大部分是描述性东西,最主要的是packages参数,列出所有的package,可以用自带的find_packages来动态获取package。所以setup.py文件的编写实际是很简单的。
简单的例子:
setup.py文件:
from setuptools import setup, find_packages
setup(
name="mytest",
version="0.10",
description="My test module",
author="Robin Hood",
url="http://www.csdn.net",
license="LGPL",
packages= find_packages(),
scripts=["scripts/test.py"],
)
mytest.py文件:
import sys
def get():
return sys.path
scripts/test.py文件:
import os
print os.environ.keys()
setup中的scripts表示将该文件放到 Python的Scripts目录下,可以直接用。OK,简单的安装成功,可以运行所列举的命令生成安装包,或者安装该python包。
python模块安装包_制作python模块安装包[转载自刘天斯]相关推荐
- python中的ssl模块不能用_解决Python找不到ssl模块问题 No module named _ssl的方法
python安装完毕后,提示找不到ssl模块: [www@pythontab.com ~]$ python Python 2.7.15 (default, Oct 23 2018, 18:08:43) ...
- 在python中模块可以封装_python 制作python包,封装成可用模块教程
首先编写py程序: printtest.py def test(): print('print test') 将以上.py文件做成python模块,需要在相同目录下创建setup.py文件,setup ...
- python安装包_迈出Python学习第一步:Python开发环境的下载与安装
所谓"磨刀不误砍柴工"."工欲善其事,必先利其器",都在告诉我们一个道理:要做好一个事情,事先做好充分的准备工作是非常重要的.所以在我们正式学习用Python编 ...
- python之sys模块详解_(转)python之os,sys模块详解
python之sys模块详解 原文:http://www.cnblogs.com/cherishry/p/5725184.html sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和 ...
- 导入python标准数学函数模块的语句_《Python编程快速上手——让繁琐工作自动化》——2.8 导入模块...
本节书摘来自异步社区<Python编程快速上手--让繁琐工作自动化>一书中的第2章,第2.8节,作者[美] Al Sweigart,王海鹏 译,更多章节内容可以访问云栖社区"异步 ...
- python psutil库安装_安装psutil模块报错安装python-devel
psutil/_psutil_linux.c:9:20: 错误:Python.h:没有那个文件或目录 In file included from psutil/_psutil_linux.c:19: ...
- python os模块安装方法_基于python中pygame模块的Linux下安装过程(详解)
一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...
- python简单图形输出_基于 Python Matplotlib 模块的高质量图形输出
Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块.它利用了 Python 下的数值计算模块 Numeric 及 Numarray,克隆了许多 M ...
- python模块导入教学_【python基础课|今日教学内容:Python导入模块的方式,学python的必备技能】- 环球网校...
[摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注py ...
最新文章
- Petshop3.0学习笔记(二)Global.asax文档分析
- 【bzoj2186】[Sdoi2008]沙拉公主的困惑 欧拉函数
- 算法之图搜索算法(一)
- 075-SSH遇到不能登陆的情况
- 请查收 | 2021 阿里妈妈技术文章回顾
- Linux常用指令---netstat(网络端口)
- Hibernate学习笔记--第二篇 关联关系映射 many –to –one
- Mac上显示出.m2文件夹并将IDEA中的Maven修改为阿里云镜像
- React Native开发总结(一)
- 免费素材下载:200个超棒的矢量图标下载
- laravel路由不生效,404,除了/ 都不行,关于nginx环境下laravel除了默认路由都出现404报错的处理方法...
- bootstrapmodel确认操作框_光伏电站EL检测仪的操作流程
- 2017-2018-1 20155322 20155327 实验一 开发环境的熟悉
- 阿里云云安全中心入选 Gartner CWPP 全球市场指南 | 凌云时刻
- python——字典攻击
- w10系统服务器连接错误代码,Win10升级失败常见问题及错误代码解决方法汇总
- Python请求HTTPS证书错误
- 一文搞懂MD5、SHA-1、SHA-2、SHA-3,哪个算法比较安全
- 2022广东深圳国际半导体分立器件产品与应用技术展览会
- 摄氏温度转换成对应的华氏温度
热门文章
- Object.entries() Object.values()
- 64位操作系统注册ocx控件失败,提示:模块加载失败请确保该二进制存储在指定路径中。
- 非线性优化汇总——Matlab优化工具箱(持续更新中)
- 六安构建智慧城市节水管理平台
- 华为云照片的爬虫程序更新(python3.6)
- 岛屿最大面积 leetcode Java_【Leetcode刷题】岛屿的最大面积
- 《工程伦理与学术道德》期末考试
- 爬虫大作业~以爬取hao123漫画为例
- html显示隐藏图片,简单的图片显示与隐藏
- Python基础学习笔记【廖雪峰】