当前位置: 首页 > news >正文

管理python库的工具,Python的包管理工具

剛開始學習Python時,在看文檔和別人的blog介紹安裝包有的用easy_install, setuptools, 有的使用pip,distribute,那麽這幾個工具有什么關系呢,看一下下面這個圖就明白了

fde4885f2983ac1cea4e668c6e100424.png

可以看到distribute是setuptools的取代,pip是easy_install的取代。

關於這些包工具可以參考 http://guide.python-distribute.org/installation.html#installing-pip

下面簡單的介紹一下:

Distribute是對標准庫disutils模塊的增強,我們知道disutils主要是用來更加容易的打包和分發包,特別是對其他的包有依賴的包。

Distribute被創建是因為Setuptools包不再維護了。

安裝Distribute

可以通過distribute_setup.py 腳本來安裝Distribute,也可以通過easy_install, pip,源文件來安裝,不過使用distribute_setup.py來安裝是最簡單和受歡迎的方式

$ curl -0 http://python-distribute.org/distribute_setup.py

$ sudo python distribute_setup.py

Pip 是安裝python包的工具,提供了安裝包,列出已經安裝的包,升級包以及卸載包的功能。

Pip 是對easy_install的取代,提供了和easy_install相同的查找包的功能,因此可以使用easy_install安裝的包也同樣可以使用pip進行安裝。

安裝Pip

Pip的安裝可以通過源代碼包,easy_install或者腳本。

下面介紹一下各種安裝方法:

源代碼方式:

$ wget http://pypi.python.org/packages/source/p/pip/pip-0.7.2.tar.gz (替換為最新的包)

$ tar xzf pip-0.7.2.tar.gz

$ cd pip-0.7.2

$ python setup.py install

easy_install:

$ easy_install pip

get_pip.py 腳本:

$ curl -0 https://raw.github.com/pypa/pip/master/contrib/get-pip.py

$ sudo python get-pip.py

OK, 下面來看一下Pip的使用

安裝package

$ pip install Markdown

列出安裝的packages

$ pip freeze

安裝特定版本的package

通過使用==, >=, <=, >,

$ pip install 'Markdown<2.0'

$ pip install 'Markdown>2.0,<2.0.3'

升級包

升級包到當前最新的版本,可以使用-U 或者 --upgrade

$ pip install -U Markdown

卸載包

$ pip uninstall Markdown

查詢包

pip search "Markdown"

PS -- 包安裝后的py文件路徑:/usr/local/lib/python2.7/dist-packages

相关文章:

  • php 对象注入,小记一次PHP对象注入
  • oracle export表结构,oracle下导入导出表结构
  • oracle自定义异常标量,gqlgen/graphql自定义标量
  • oracle安装出现连接失败怎么办,oracle客户端PLSQL连接失败解决方法
  • oracle数据库架ssm,GitHub - wind0926/ssm-maven: smm框架+maven+oracle的旅游后台系统
  • oracle快速生成一千万条数据,[Oracle]快速生成大量模拟数据的方法
  • oracle存储过程生成uuid,存储过程 根据uuid
  • oracle submit_time,Oracle '26-2月 -19 03.34.47.000000 下午' 字符串日期解析
  • linux 计算字符串日期,在linux下获取时间字符串
  • linux 阻止 复位命令,Linux下锁定账号,禁止登录系统的设置总结
  • Linux怎么看每一级别的权限,linux 特殊权限chattr(文件系统级别的权限) Attr 权限和 ACL访问控制列表 ......
  • 改文件命名linux,linux下修改文件名称
  • 小米网卡驱动linux,小米笔记本pro 15.6寸安装ubuntu16.04无法使用wifi的解决方法
  • fopen函数在linux,Fopen()是Linux中的一个线程安全函数吗?
  • linux vnc登录日志,CentOS安装使用VNC进行远程桌面登录
  • [case10]使用RSQL实现端到端的动态查询
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Elasticsearch 参考指南(升级前重新索引)
  • es6
  • HashMap剖析之内部结构
  • Laravel 菜鸟晋级之路
  • leetcode46 Permutation 排列组合
  • Python进阶细节
  • Rancher-k8s加速安装文档
  • Spring声明式事务管理之一:五大属性分析
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Vue 2.3、2.4 知识点小结
  • 关于extract.autodesk.io的一些说明
  • 前端
  • 如何利用MongoDB打造TOP榜小程序
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 突破自己的技术思维
  • postgresql行列转换函数
  • ​secrets --- 生成管理密码的安全随机数​
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​业务双活的数据切换思路设计(下)
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #考研#计算机文化知识1(局域网及网络互联)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (5)STL算法之复制
  • (C++17) optional的使用
  • (LeetCode C++)盛最多水的容器
  • (pojstep1.1.2)2654(直叙式模拟)
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • .NET CORE 第一节 创建基本的 asp.net core
  • .Net Web项目创建比较不错的参考文章
  • .NET 使用配置文件
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET6 命令行启动及发布单个Exe文件