`
您已经登录
  • 浏览: 43370 次
  • 性别: 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 setuptools

    Python的setuptools是一个强大的软件包管理工具,它使得Python开发者能够轻松地构建、打包、分发、安装和管理他们的Python项目。setuptools是Python生态系统中不可或缺的一部分,它扩展了Python的distutils模块,...

    python-easyinstall-setuptools-17.0(windows)

    `setuptools`是由Jim Hugunin开发的,目的是为了弥补Python标准库`distutils`功能上的不足,提供更强大的包管理和分发功能。`easy_install`的主要功能是通过简单的命令行指令,能够自动找到、下载并安装Python包及其...

    setuptools-46.1.3.zip

    **setuptools-46.1.3.zip** 是一个包含Python包管理工具 **setuptools** 版本46.1.3的压缩文件。setuptools是Python开发中不可或缺的工具,它扩展了Python的distutils模块,使得创建、打包、分发Python软件变得更加...

    pip-20.3.4.tar.gz

    标题 "pip-20.3.4.tar.gz" 指的是 Python 的包管理工具 pip 的一个特定版本,这里是 20.3.4。这个压缩文件通常包含了 pip 源代码,用户可以下载并安装到自己的环境中。pip 是 Python 开发者用来安装和管理第三方库的...

    pip-20.2.4.tar.gz

    - 解压与构建:下载完成后,pip会解压缩源代码,并使用Python的distutils、setuptools或wheel模块进行构建。 - 安装:构建后的包会被安装到Python的site-packages目录下,使得其他Python程序可以引用这些包。 3. ...

    setuptools.zip

    `setuptools`提供了丰富的功能,如创建源码包、安装依赖管理、生成 Egg 文件、以及支持 Python 的开发环境如`virtualenv`。 **1. 安装setuptools** 在Python环境中,`setuptools`通常是通过`pip`来安装的。然而,...

    Setuptools

    Setuptools是Python编程环境中一个非常重要的包管理工具,它为Python开发者提供了更加便捷的软件打包、安装和分发方式。标题中的"Setuptools"指的就是这个工具,它使得Python开发者可以创建包含所有依赖项的自包含...

    Python- pip-1.5.6.rar

    在使用pip时,需要注意的是,它依赖于Python的distutils、setuptools和wheel等模块。这些模块帮助pip处理包的构建、分发和安装。同时,pip的配置文件(pip.ini或pip.conf)可以让用户定制默认的行为,如设置代理...

    python打包,调试

    3. **打包工具**:Python提供了多种打包工具,例如`setuptools`,`distutils`,以及更现代的`pip`和`轮子`(wheel)格式。`setuptools`是常用的工具,可以创建`setup.py`文件来定义项目信息、依赖和构建选项。`pip`...

    pip-0.7.1.tar.gz

    4. **创建虚拟环境**:通过与`virtualenv`或`venv`配合,pip可以创建独立的Python环境,避免不同项目间的包冲突。 5. **列出已安装的包**:用户可以查看系统中当前已安装的所有Python包及其版本信息。 6. **卸载包**...

    python py7zr资源包

    5. `wheel-0.37.1.virtualenv`、`pip-21.3.1.virtualenv` 和 `setuptools-60.2.0.virtualenv`:这些都是Python的包管理和构建工具,如Wheel用于创建Python包的二进制分发,pip用于安装Python包,而setuptools则帮助...

    Python 依赖及安装包

    在本主题"Python 依赖及安装包"中,我们将深入探讨如何安装和管理Python环境,特别是关注Python 2.7.9版本,以及与之相关的setuptools、pip和MySQL-python这些关键组件。 首先,Python 2.7.9是Python 2.x系列的一个...

    pip-20.3.tar.gz

    pip与Python的setuptools和distutils库紧密合作,使得开发者可以发布自己的Python项目到Python Package Index (PyPI)上,供其他人下载和使用。 在描述中提到的"欢迎下载使用哦!",意味着这个压缩包可能是为了方便...

    pip-1.2.tar.gz

    1. **pip介绍**:pip是Python的标准包管理器,它允许用户从Python Package Index (PyPI) 或其他仓库安装、升级和卸载Python软件包。pip通过解析setup.py文件来处理软件包的构建、安装和依赖关系。 2. **版本1.2**:...

    PyPI 官网下载 | pip-8.0.0-py2.py3-none-any.whl

    标题中的"PyPI 官网下载 | pip-8.0.0-py2.py3-none-any.whl"指的是Python的包管理工具PyPI(Python Package Index)上发布的pip的一个特定版本,即8.0.0版。PyPI是Python开发者共享和发现软件包的中心仓库,pip则是...

    Python库 | ETAES-0.0.45-py3-none-any.whl

    `setup.py` 使用setuptools或distutils库来构建、打包和安装Python项目。此外,使用`README`、`LICENSE`等文件提供关于库的详细信息和授权条款。库的源代码通常组织在`src`或`lib`目录下,测试代码放在`tests`目录中...

    PyPI 官网下载 | sktest-0.0.4.tar.gz

    4. **打包和发布Python库**:开发者可以使用`setuptools`或`distutils`库来打包Python项目,使其符合PyPI的标准,然后通过`twine`工具上传到PyPI,供其他用户下载和使用。 5. **Python包结构**:一个标准的Python包...

    pip:Python软件包安装程序

    【pip:Python软件包安装程序】 pip是Python编程语言中的一个核心工具,用于管理和安装Python软件包。这个强大的工具使得开发者能够轻松地在全球最大的开源软件仓库——Python Package Index (PyPI) 中查找、下载和...

    Python库 | qyc_env-0.0.1-py3-none-any.whl

    开发Python库时,开发者通常会遵循一定的规范,比如使用`setuptools`或`distutils`来构建和发布库。`setup.py`文件是定义库元数据和构建指令的地方,包括库名、版本、依赖等。在本例中,虽然没有提供具体的源代码,...

    ADLStream-0.1.1-py3-none-any.whl.zip

    8. **Python的生态工具**:除了`pip`之外,Python还有其他工具如`virtualenv`用于创建独立的Python环境,`setuptools`和`distutils`用于构建和发布Python包,以及`conda`在科学计算领域广泛使用的包管理器。...

Global site tag (gtag.js) - Google Analytics