`
您已经登录
  • 浏览: 43066 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

python包管理:distutils,setuptools,pip,virtualenv等介绍

阅读更多

对于每个编程语言来说打包和发布开发包往往非常重要,而作为一个编程者能够快速容易的获得并应用这些由第三方提供的包同样非常重要。类似于java为了便于管理有人开发了maven等管理工作,而python自然而然也需要便捷的打包和发布工具,以下就介绍python的几个包管理方式。

 

一  distutils - Python自带的基本安装工具, 适用于非常简单的应用场景使用

通过distutils来打包,生成安装包,安装python包等工作,需要编写名为setup.py python脚本文件。如下代码:

from distutils.core import setup

setup(
name = "testpackage",  
version = "1.0",  
description = "Distutils sample distribution testpackage",  
packages = ['TestPackage']
)

通过上述代码可以进行打包或生成安装文件,并能进行安装

1.打包:python setup.py sdist

2.安装:python setup.py install

3.windows下安装文件exe(在windows下才能生效):python setup.py bdist_wininst

4.linux下rpm安装文件(在有rpm环境下才能生效):python setup.py sdist_rpm

进行打包,和生成Windows下可执行文件后,如下图所示:


生成了zip包和exe的可执行包,这时就可以通过解开zip包后用python setyp.py install来安装,或者在Windows下直接双击安装。安装完后会在%python_home%\Lib\site-packages下多出此安装包,你就可以爽爽地使用了。

 

二  setuptools - 针对 distutils 做了大量扩展, 尤其是加入了包依赖机制。不支持python3,安装完setuptools后会有easy_install

windows

1.32位操作系统直接exe安装文件安装
2.64位操作系统下载名为ez_setup.py的python脚本文件运行,它会自动安装适合的egg文件并帮您安装(当前还不支持64位的exe安装文件安装,由于distutils安装兼容问题)
Linux
直接下载rpm源码安装包,通过如:rpm -ivh setuptools-0.6c11-1.src.rpm 安装
Mac OS,Linux,其他系统
下载对应python版本的egg包,然后通过运行脚本的方式去安装,如 sh setuptools-0.6c11-py2.7.egg 
python版本支持 
32位系统至少需要python2.3.5或以上版本支持 
64位系统至少需要python2.4或以上版本支持
 
三  distribute - 类似于setuptools,支持python3,安装完distribute后会有easy_install。
 
四  easy_install - setuptools 和 distribute 自带的安装脚本, 也就是一旦setuptoolsdistribute安装完毕, easy_install 也便可用了。
%python_home%\Scripts下会有对应的可执行文件,如easy_install.exe,最大的特点是自动查找 Python 官方维护的包源 PyPI , 安装第三方 Python 包非常方便。
easy_install 包名==版本号     安装第三方包
easy_install --help                 来查看命令详情
 
五  pip - 目标是取代easy_install。easy_install 有很多不足: 安装事务是非原子操作, 只支持 svn, 没有提供卸载命令, 安装一系列包时需要写脚本; pip 解决了以上问题, 已俨然成为新的事实标准, virtualenv 与它已经成为一对好搭档;
使用:
     安装: pip install [PACKAGE_NAME]   
     升级:pip install -U [PACKAGE_NAME]   
     卸载: pip uninstall [PACKAGE_NAME]
     查询包: pip search [PACKAGE_NAME]  
     列出安装的包及其版本:pip freeze
     查看帮助:pip help
     通过使用==, >=, <=, >, <来指定一个版本号
下载地址:https://pypi.python.org/pypi/pip 通过python setup.py install来安装,通过pip --version来查看版本。
 
六  distutils2 - setuptools 和 distribute 的诞生是因为 distutils 的不济, 进而导致目前分化的状况。它将成为 Python 3.3 的标准库 packaging , 并在其它版本中以distutils2 的身份出现; 换句话说, 它和 pip 将联手结束目前混乱的状况。
 
七  virtualenv - 用来创建隔离的python环境,处理python环境的多版本和模块依赖
在默认安装下virtualenv安装的是setuptools而不是distribute,如果想安装distribute需要使用--distribute参数:python virtualenv.py --distribute。
安装完后在python_home的scripts目录下有virtualenv.exe可执行文件,使用virtualenv mysite,创建新的python环境mysite,并且已有pip和easy_install。
 virtualenv [OPTIONS] DEST_DIR
--version显示当前版本号。
-h, --help显示帮助信息。
-v, --verbose显示详细信息。
-q, --quiet不显示详细信息。
-p PYTHON_EXE, --python=PYTHON_EXE指定所用的python解析器的版本,比如 --python=python2.5 就使用2.5版本的解析器创建新的隔离环境。 默认使用的是当前系统安装(/usr/bin/python)的python解析器
--clear清空非root用户的安装,并重头开始创建隔离环境。
--no-site-packages令隔离环境不能访问系统全局的site-packages目录。
--system-site-packages令隔离环境可以访问系统全局的site-packages目录。
--unzip-setuptools安装时解压Setuptools或Distribute
--relocatable重定位某个已存在的隔离环境。使用该选项将修正脚本并令所有.pth文件使用相当路径。
--distribute使用Distribute代替Setuptools,也可设置环境变量VIRTUALENV_DISTRIBUTE达到同样效要。
--extra-search-dir=SEARCH_DIRS用于查找setuptools/distribute/pip发布包的目录。可以添加任意数量的–extra-search-dir路径。
--never-download禁止从网上下载任何数据。此时,如果在本地搜索发布包失败,virtualenv就会报错。
--prompt==PROMPT定义隔离环境的命令行前缀。
  • 大小: 7.8 KB
分享到:
评论

相关推荐

    浅析python打包工具distutils、setuptools

    python包在开发中十分常见,一般的使用套路是所有的功能做一个python模块包,打包模块,然后发布,安装使用。这篇文章给大家介绍了python打包工具distutils、setuptools的相关知识,感兴趣的朋友一起看看吧

    setuptools pip 等库文件

    python 2.7 安装xlutils库时提示找不到setuptools模块等等错误

    python中setuptools的作用是什么

    setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。用户在使用setuptools创建的包时,并不需要已安装setuptools,只要一个启动模块即可。 功能亮点: ...

    详解Python打包分发工具setuptools

    Python打包分发工具setuptools:曾经 Python 的分发工具是 distutils,但它无法定义包之间的依赖关系。setuptools 则是它的增强版,能帮助我们更好的创建和分发 Python 包,尤其是具有复杂依赖关系的包。其通过添加一...

    python-innosetup:distutils扩展模块-通过InnoSetup创建安装程序

    一个Python innosetup库 要求 Python 2.5或更高版本 特征 您可以使用自定义的InnoSetup脚本。 通过setup()元数据的安装程序元数据 从setup()元数据生成AppId(GUID)请参阅innosetup.InnoScript.appid属性。 ...

    python在Windows下安装setuptools(easy_install工具)步骤详解

    setuptools 是一组由PEAK(Python Enterprise Application Kit)开发的 Python 的 distutils 工具的增强工具,可以让程序员更方便的创建和发布 Python的egg 包,特别是那些对其它包具有依赖性的状况。 由 setuptools ...

    setuptools-41.0.0.zip

    setuptools是python distutils的加强版,使开发者构建和发布python包更加容易,特别是当包依赖于其他包时。用setuptools构建和发布的包与distutils发布的包类似。包的使用者无需安装setuptools就可以使用该包。

    初步介绍Python中的pydoc模块和distutils模块

    pydoc Ka-Ping Yee 曾创建了一个相当著名的...作为提供给阅读这篇 Python 文章的任何初学者的背景资料,Python 一直有些半正式的文档标准。这些标准并没有试图过度地限制开发者,而是给开发者提供“一种明显的写文档的

    llvmscript:用于运行LLVM实验的通用Python脚本

    build g++ python3-distutils zlib1g-dev libtinfo-dev libxml2-dev要运行基准测试(LNT,测试套件): python3-pip , virtualenv2 , python-dev :初始化LNT所需yacc , tclsh :运行LNT所需perf :如果要使用p

    picosdk-python-wrappers:PicoScope:registered:示波器和PicoLog:registered:数据记录器产品的一组Python绑定和示例

    picosdk-python-wrappers 欢迎使用适用于Python的PicoSDK。 它允许您在自己的Python程序中控制PicoScope设备。 入门 要使用此代码,您将需要安装PicoSDK C库。 微软Windows 请访问以下载适用于Windows的32位或64位...

    python-skeleton:一个骨架 Python 项目,带有执行简单“结帐”系统的示例代码。 使用我喜欢的 Python 项目的库和设置

    这是一个骨架 Python 命令行项目,包含文档、测试(使用 py.test)、distutils 支持以及一些关于布局和样式的# Opinion: (用# Opinion:代码中的注释标记)。 作为示例代码,它还实现了一个简单的“结帐”系统。 这...

    setuptools、distutils和wheel哪一个更好用?

    setuptools、distutils和wheel都是Python的打包工具,用于将Python代码打包成可安装的软件包,但它们有一些区别和用途上的差异。

    python自制包并用pip免提交到pypi仅安装到本机【推荐】

    不得不说python的自制包的相关工具真是多且混乱,什么setuptools,什么distutils,什么wheel,什么egg!!怎么有这么多啊?? 而且我的需求且且是创建一个自制包管理自己常用的代码,也必不想提交到PyPI,仅仅只需要...

    python-axolotl:libaxolotl的Python端口

    这是最初由编写的的python端口 原始作者的概述: 这是一种棘手的向前保密协议,可在同步和异步消息传递环境中使用。 安装 如果您按照以下说明操作操作系统,该库具有一些依赖关系,这些依赖关系会自动拉出并安装 ...

    python-versioneer:VCS控制的树的版本字符串管理

    这是一个用于在基于distutils的python项目中管理记录的版本号的工具。 目的是从发布过程中删除乏味且容易出错的“更新嵌入式版本字符串”步骤。 制作新版本应该与在版本控制系统中记录新标签一样容易,并且可能制作...

    aws-cli:Amazon Web Services 的通用命令行界面 -python

    安装 安装 aws-cli 最简单的方法是使用 pip: $ pip install awscli 或者,如果您不是在 virtualenv 中安装: $ sudo pip install awscli 如果您安装了 aws-cli 并想升级到最新版本您可以运行: $ pip install --...

    python项目开发文档.docx

    我们是用python中的distutils将python模块进行打包的。在这个过程中我们需要编写一个setup.py文件用来配置打包信息,示例如下所示: from distutils.core import setup setup(name="Myblog", version="1.0", ...

    Python培训基础教程-正则表达式2.pptx

    我们是用python中的distutils将python模块进行打包的。在这个过程中我们需要编写一个setup.py文件用来配置打包信息,示例如下所示: from distutils.core import setup setup(name="Myblog", version="1.0", ...

    在Python的setuptools框架下生成egg的教程

    本文介绍了 setuptools 框架的内容,它是 PEAK 的一个副项目,它提供了比 distutils 更加简单的包管理和发行功能。 开始 setuptools 模块很会 “规避”。例如,如果我们下载一个使用 setuptools 而不是使用 ...

Global site tag (gtag.js) - Google Analytics