优雅的使用Python之软件管理

常用软件包管理工具

一般python软件包管理工具,主要有以下:

图 常用python包管理工具

可以看到distribute是setuptools的替代方案(因为Setuptools包不再维护了),pip是easy_install的替代方案。本篇重点介绍pip,其它感兴趣的自行了解。

pip最流行的软件包管理工具

pip的核心开发人员之一的 Donald Stufft,去年写了一篇博客详细描述了PyPI CDN供应商4天的流量。其中一个纬度展示,使用软件包管理工具从PyPI安装软件包的用户中,大约75%的用户使用pip。该工具已被证明非常有用和流行,2013年10月pip将被从3.4版本起,随python内置发布

图:PyPI安装工具使用统计图(https://caremad.io/2013/10/a-look-at-pypi-downloads/

PyPI首页推荐的软件包安装方法:

安装

方法一:

l  下载get-pip.py文件,https://bootstrap.pypa.io/get-pip.py

l  python get-pip.py

D:\Python33>python get-pip.py

Downloading/unpacking pip

Downloading/unpacking setuptools

Installing collected packages: pip, setuptools

Successfully installed pip setuptools

Cleaning up...

方式二:源码方式安装

l  下载源码包:https://pypi.python.org/packages/source/p/pip/

l  解压

l  cd 到对应目录

l  python setup.py install

 

使用

l  从PyPI安装软件包:

$ pip install SomePackage
  [...]
  Successfully installed SomePackage

l  查看软件包安装了哪些文件及路径等信息:

$ pip show --files SomePackage
  Name: SomePackage
  Version: 1.0
  Location: /my/env/lib/pythonx.x/site-packages
  Files:
   ../somepackage/__init__.py
   [...]

l  查看哪些软件包已经有更新版本了:

$ pip list --outdated
  SomePackage (Current: 1.0 Latest: 2.0)

l  升级软件包:

$ pip install --upgrade SomePackage
  [...]
  Found existing installation: SomePackage 1.0
  Uninstalling SomePackage:
    Successfully uninstalled SomePackage
  Running setup.py install for SomePackage
  Successfully installed SomePackage

l  卸载软件包:

$ pip uninstall SomePackage
  Uninstalling SomePackage:
    /my/env/lib/pythonx.x/site-packages/somepackage
  Proceed (y/n)? y
  Successfully uninstalled SomePackage

pip高级用法

前面小节介绍pip的基本功能使用,已经满足了绝大部分需求。下面介绍pip的一些高级用法:

l  查询软件包

$ pip search "query"

l  列出安装的所有软件包

$ pip list

l  安装软件包的指定版本号

通过使用==, >=, <=, >, <来指定一个版本号

$ pip install SomePackage            # latest version
$ pip install SomePackage==1.0.4     # specific version
$ pip install 'SomePackage>=1.0.4'     # minimum version

 

l  根据依赖文件安装软件包

想象一个场景,使用《优雅的使用python之环境管理》创建了一个感觉的虚拟环境,然后安装了一些依赖的软件包,开发出了应用APP。这个时候,你需要部署到服务器?

这个时候可以使用pip导出依赖文件列表,然后在服务器上根据依赖文件列表,自动安装对应的软件包。是不是很方便!

pip freeze > requirements.txt

pip install -r requirements.txt

 

时间: 2024-10-30 21:08:30

优雅的使用Python之软件管理的相关文章

【Python】软件管理工具--pip

  因为项目的原因我需要深入的学习python,后端程序依赖各种各种软件包,比如MySQLdb,新手可能会有些不熟悉 如何快速安装所需要的python 包.常用的python 包安装和管理有 easy_install, setuptools, pip,distribute. 本文则介绍pip---"A tool for installing and managing Python packages."安装pip 先要获取脚本 get-pip.py   wget https://boot

在终端中优雅地编写Python

前言 最早我也只是在服务器上编辑文件的时候用用vim来改改程序,并没有把vim当做自己的主力编辑器.但是偶然的一次机会需要改一个奇葩的输入文件的格式,用了下Vim的宏录制,尝到了甜头,于是后面就开始用Vim来写程序了,虽然使用初期有些阻力,但时间久了就会发现,双手再也不用离开键盘,即使使用sublime这样的编辑器我也要改成使用Vim模式,Vim真的能让自己一思维的速度编辑文本(对我来说就是写程序了). 正好最近换了新的电脑,需要在新电脑上配置一下,就干脆把一些配置相关的东东记录下来吧,相关的配

优雅的使用python之环境管理

优雅的使用python之环境管理 缘起 情景1:不同python版本的管理 同一电脑上的多个python版本之前的管理,为了突出问题的普遍存在,下面是有人在segmentfault上提的问题. 摘自:http://segmentfault.com/q/1010000000162043 情景2:同一python版本中同一库的不同版本管理 例如在python2.7下应用A是基于Django1.6,应用B是基于Django1.7的,这种情况怎么管理. 为解决以上问题,下面隆重介绍下virtualenv

详谈Ubuntu软件管理丢失的功能

多数人都认为Ubuntu通过Ubuntu Software Center彻底改革了dpkg包管理.毫无疑问,按照多数人标准来看,Software Center肯定是用户友好的呢.但事实真是如此么?本文将介绍Ubuntu软件管理的现状,伴随着Ubuntu首次发布的软件管理走了多远,以及Ubuntu软件领先的地方. 一切从apt开始 Ubuntu软件管理的纯粹形式使用apt打包工具,最先内置在很棒的但常被低估的Linux版本Debian中.可使用apt安装.移除或者更新Ubuntu上的软件.要完全清

软件管理 软件列表-关于用c#制作类似软件管理类的软件

问题描述 关于用c#制作类似软件管理类的软件 我想用c#winform实现类似360软件管家或者类似的软件管理列表 现在用donetbar的dataGridViewX实现,但是最后一个按钮不知道怎么变小,请教? 或者有没有其他方法实现呢? 解决方案 用picturebox button label组合一个自定义控件,再用tablelayoutpanel排列它们 解决方案二: 你这要拆开多个,才好控制各个大小.而且像360这种界面,需要用web页面来实现更简单,也好看,用控件太累了.

Linux Mint用户指南:软件管理

Linux http://www.aliyun.com/zixun/aggregation/16786.html">Mint中的包管理 如果您是第一次安装 linux操作系统,您可能不熟悉把软件打成包的概念.您很快会熟悉这个包管理方式,并且感谢她在安全性,可用性,可控性方面带来的优势. 我们努力让您电脑的硬件都被检测到并安装合适的硬件驱动,这样可以使您的电脑开机就可用.我们努力为您做很多事情,这样您就不需要自己到网络上找很多第三放的源了.您可能已经注意到了,您的 Linux Mint已经有

azure上的SUSE主机,yast2打开软件管理,闪退是怎么回事?

问题描述 azure上的SUSE主机,yast2打开软件管理,闪退是怎么回事? azure上的SUSE主机,yast2打开软件管理,闪退是怎么回事? 解决方案 您好, 请确认你在SSH连接后安装所有YaST2所需要的文件包,并且在 YaST2 软件管理工具中安装了所有的软件包. Susie

打车软件管理规定终于落地

备受关注的打车软件管理规定昨天终于落地.交通运输部正式印发的<关于促进手机软件召车等出租汽车电召服务有序发展的通知>中规定,打车软件逐步纳入统一召车平台管理,但其自主调度不受影响:通过打车软件发出的召车信息只推送至空车:在机场.火车站等设立统一出租车调度站的场所,出租车不得通过打车软件揽客等.各方认为,此前遭到质疑的征求意见稿经过修改,较好地兼顾了效率与公平. 京华时报记者 廖丰 黄海蕾 ■政策亮点 兼顾公平防止挑肥拣瘦 业界看来,<通知>中召车信息只向空车推送,价格管制,以及对机

python利用mysql管理大数据集方便吗?

问题描述 python利用mysql管理大数据集方便吗? 使用python处理数据的时候生成的大批量的List数据集怎样保存比较方便呢?就是退出python后下次再进入python时不用再从外部文件重新读取数据集--因为我的数据量实在是太大,每次打开就再读一遍实在是太耗时间--所以我想用msqldb模块管理数据,不知道在数据存取.查询方面方不方便呢?有没有好的相关教程推荐的?谢谢啦 解决方案 你要是真的很大,可以考虑hive来做mysql的映射啊