python包管理工具总结
原文:http://www.educity.cn/wenda/356834.html
常见的包管理工具包括distutils,setuptools,pip,virtualenv。
一 、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
三 、distribute -
类似于setuptools,支持python3,安装完distribute后会有easy_install。
四 、easy_install -
setuptools 和 distribute 自带的安装脚本, 也就是一旦setuptools或distribute安装完毕, 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
通过使用==, >=, <=, >, <来指定一个版本号
下载地址:通过python setup.py install来安装,通过pip --version来查看版本。
六、 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定义隔离环境的命令行前缀。
总结:
disutils、setuptools、distribute属于一类,都是一组工具集,用于打包和安装包。
easy_install和pip属于一类,用于安装包,它在disutils的基础上增加了自动识别包依赖。
python包管理工具总结相关推荐
- Python包管理工具Distribute的安装
Python包管理工具Distribute的安装 Python的包管理工具常见的有easy_install, setuptools, 还有pip, distribute,那麽这几个工具有什么关系呢,看 ...
- Pipenv – 超好用的 Python 包管理工具
pipenv 是什么 pipenv 是 python 官方推荐的包管理工具,集成了 virtualenv.pyenv 和 pip 三者的功能于一身,类似于 php 中的 composer. 我们知道, ...
- Python 包管理工具解惑
本文转载自http://zengrong.net/post/2169.htm,感谢原作者. 一.困惑 作为一个 Python 初学者,我在包管理上感到相当疑惑(嗯,是困惑).主要表现在下面几个方面: ...
- python 包管理工具poetry
| python 包管理工具poetry的使用 poetry 是一个python管理虚拟环境和依赖的管理工具,poetry和pip 类似,另外还提供了打包和发布的功能. 官方文档 https://py ...
- 新一代 Python 包管理工具来了!
作者:费弗里 来源:Python 大数据分析 " 阅读本文大概需要 4 分钟. " 1 简介 说起Python的包管理工具,大家第一时间想到的肯定是pip.conda等经典工具.但 ...
- linuxpip安装python包_Windows+Linux安装Python包管理工具pip
Windows+Linux安装Python包管理工具pip Windows安装Python包管理工具pip pip是一个Python包管理工具,主要是用于安装PyPI上的软件包,可以替代easy_in ...
- python模块版本管理工具_【转】Python包管理工具
Python 包管理工具解惑 本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供m ...
- Pipenv – 超好用的 Python 包管理工具 1
pipenv 是什么 pipenv 是 python 官方推荐的包管理工具,集成了 virtualenv.pyenv 和 pip 三者的功能于一身,类似于 php 中的 composer. 我们知道, ...
- Python包管理工具小结
此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 作为一名接触Python有一段时间的初学者,越来越体会到Python的方便之处,它使人能更 多的关注业务本身 ...
- pip;python包管理工具
pip;python包管理工具 http://blog.csdn.net/shanliangliuxing/article/details/10114911 转自:http://jiayanjujyj ...
最新文章
- 论文被拒,项目被砍?斯坦福「最惨」在读博士教你如何直面失败
- Kettle连接HiveServer2配置和常见问题解决
- 如何让word档在同一页上显示两列或更多列
- LiveVideoStackCon 2022 上海站 专题抢先看
- 购物车的功能——JS源码
- mailto 附带附件_为什么附带项目如此重要
- Java 算法 降价机器人
- Microsoft.System.Center.Operations.Manager.2007 中文版完整光盘下载地址
- [SOJ #538]好数 [CC]FAVNUM(2019-8-6考试)
- 01 按指定格式读写文件出现乱码
- 分布式文件系统FastDFS动态扩容
- 大牛手把手教你用树莓派玩红警OPENRA
- 自动化测试qq空间登录
- Golang 之 IED 安装(mac)
- 「中国好SaaS」报名进行中!「面基」买方关键决策人
- 微信的常用设备 只能看到android,安卓手机撤回的微信图片可以查看啦,赶紧学起来...
- NVMe SSD测试为何要先做预处理?
- Early Convolutions Help Transformers See Better
- matlab中simple函数怎么用,matlab里simple函数
- java 公历 农历_Java给定公历日期计算相应农历/阴历日期