常用的Python工具:使用的virtualenv,用Pip安装和管理软件包

介绍

当涉及到使用Python,特别是在应用程序开发领域,有一些工具,你会看到经常在不同的地方或开源代码。 尽管极为常用,但遗憾的是,有时难以掌握一本好的手册来逐步介绍每一步,这对于熟悉这些重要且需要的工具是至关重要的。

在这篇DigitalOcean文章中,我们的目标是不仅填写基础知识,而且介绍流行的Python工具和项目的逻辑,因为我们在现实生活中使用它们。 我们将开始下载和安装一些公共库,设置和使用虚拟环境(使用virtualenv),以及管理软件包以开发和生产自己的应用程序。

本文面向初学者以及那些寻求更深入的知识的人。 如果您想要查看和了解更多,请随时在下面的评论部分提出建议。

Python在CentOS上

请记住,如果您使用的是CentOS / RHEL系统,您应该避免使用操作系统附带的默认Python解释器。 相反,你应该选择自己安装Python。

如果你还没有这样做了,并想了解如何操作,请参阅我们的教程: 如何设置的Python 2.7.6和3.3.3在CentOS 6.4才开始。

同样地,为了与定制Python安装CentOS的安装PIPVIRTUALENV,你可以按照这篇文章的说明。

Python和包

虽然Python应用程序可以由一个单一的文件的,通常它们是由一系列的功能,对象(类),方便的工具,当然,在多个文件(S)传播变量,置于其 的模块 这些模块共同组成了被称为一个

安装包的传统方式包括首先发现它然后下载。 这听起来很柔软,简单,因为它实际上像在Python很多东西- 但它并不完美

当文件准备就绪,解压后,使用的distutils模块,可以通过调用安装setup.py

包装的安装示例:

 # Example: cd [package name]
 cd a_package
 python setup.py install

的distutils(配电公司)是用于代码包装和分配一个工具集。 它默认是使用Python发货(即包含在标准库 )。

尽管上面解释程序的简单性,它是没有用的,如果从安装抽象的挑战的过程中存在着其他地方: 发现并管理它们 这是通过工具进行包管理的地方 - 带来了几个好处,如:

  • 卸载(如pip uninstall package_x
  • 版本控制(如pip install django==x
  • 和自动依赖管理(因为包可以依赖于其他包)。

软件包管理

Python中的包可以是工具,库,框架和应用程序。 鉴于普及和语言的优美,也有可用的软件包,你可以利用你自己项目数以万计。

软件包管理工具

两种最常见的Python包经理PIP INSTALL_。 它们都旨在帮助用户完成以下任务:

  • 下载,安装和卸载
  • 建造
  • 管理Python包等等

他们都可能出现由外而这个概念在公共库的setuptools增加他们的共同依赖做同样的事情。

然而,在这种情况下,它是隐藏的眼睛,使差异 - 以及很多。

pip vs easy_install

该任务创建的第一个工具是easy_install的 虽然与手工操作相比,它是一种缓解和乐趣,但随着时间的推移,它已被证明在某些方面是有问题的。 创建该理由画中画 ,另一包管理器的发展。

点子easy_install的更换,其中在其前身带来了许多好处,包括(由项目本身所限定),但不限于:

  • 在安装前下载所有内容
  • 在过程中提供有用的反馈
  • 保持所采取行动的历史
  • 根据Python传统提供有用的错误消息
  • 补充的virtualenv, 非常精美,它的工作原理

要了解更多关于点子 ,考虑点击阅读其介绍位于包的PyPI指数在这里

彻底的PIP操作方法

在本节中,我们将讨论如何在必要的依赖的点子 ,安装了最新的内置其次是提供如安装卸载冻结管理需求的核心功能步行通过。

当我将使用PIP?

正如在介绍时承诺的,我们的目标是给你的实际生活场景的例子。

想象一下,你正在开发一个小应用程序。 你已经设置了自己的路线图,一切都很顺利。 然后你发现一个库(或一个模块),如果你包括在你的应用程序,可以有很大的帮助。 你可以下载它的传统方式,我们已经解释。 然而,一旦你不只有一个,但3,4或甚至20包,你需要处理,这个过程变得繁琐。 包括管理它们(例如更新,卸载,更换,使用不同的版本),你可以看到你将需要处理,这是使用PIP,包管理器裁员的问题。

安装PIP

为了安装点子 ,我们首先需要考虑其依赖的照顾。 不要担心,这是非常容易。

setuptools

如上所述,PIP的依赖项之一是setuptools的图书馆。 它建立在Python的分布公用事业工具称为distutils来的(标准)功能。 鉴于洒落在默认情况下提供的,所有我们需要的左边是setuptools的

我们将安全地下载安装文件使用setuptools的 curl卷曲是系统库,让在各种协议的数据传输(即用于应用程序,如HTTP之间的数据交换的通用语言)。 这将验证从源头上SSL证书和数据传递给Python解释器

这些设置文件,Python解释器将要执行,自动安装过程,因为他们在我们的系统上设置最新的稳定版本。

执行以下命令:

 curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python -

这个安装让我们能够在整个系统中使用pip。 但是,这不是安装任何其他软件包的首选方式。 什么建议是始终使用自包含的Python环境的virtualenv。 我们将在下一节中讨论它。

注意:您可能需要以继续下载明确获得超级用户权限。 在这种情况下,请考虑使用:

 curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | sudo python -

无需安装其单一的依赖之后,我们现在可以继续下载和设置点子

我们将使用再次成为curl有安全下载和安装的安装文件。

执行以下命令:

 curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python -

PIP默认安装文件夹位于:

/usr/local/bin

为了使用它没有说明的完整路径,它必须附加到路径

更新PATH:

 export PATH="/usr/local/bin:$PATH"

完成此步骤后,我们愿与PIP工作。

使用PIP

使用PIP是真的很有趣,可以认为头痛免费。 如果你已经处理了在过去非常不必要的问题,甚至不明白为什么,PIP将确保它们保持在最低限度你批文。

使用PIP安装软件包

PIP可以做很多事情,但它不会是一个错误的声明,最常用的功能,它是安装软件包 有几种方法可以为你处理这项工作。

查找和安装软件包:

 # Example: pip install [package name]
 # Let's install the excellent *requests* library
 pip install requests

查找和安装特定版本:

 # Example: pip install [package name]==[version]
 # Let's install version 2.0.0. of requests
 pip install requests==2.0.0

从URL或VCS存储库安装:

 # Example: pip install [url]
 # Let's install virtualenv
 pip install https://github.com/pypa/virtualenv/tarball/1.9.X

安装的virtualenv内:

 # Example: pip install [env name] [package name]
 # This will either install inside an environment, or create one
 # Let's install requests inside a virtualenv called *venv*
 pip install -E venv requests

卸载封装,PIP:

PIP的第二个最常见的功能可能是卸载软件包。

卸载软件包:

 # Example: pip uninstall [package name]
 # Let's remove requests library
 pip uninstall requests 

升级包与PIP

如果你正在考虑卸载安装一个应用程序的新版本中,你可以尝试升级

升级软件包:

 # Example: pip install --upgrade [package name]
 # Let's upgrade requests library
 pip install --upgrade requests

搜索与PIP封装

在决定删除或升级包之前,你可能会觉得有必要先一个搜索

搜索包:

 # Example: pip search [package name]
 # Let's find all django packages
 # This might take a while (there's tonnes of them!)
 pip search django

创建具有画中画安装包的列表

一个点的最真正的无与伦比的和挽救生命的能力是能够创建-轻松- 安装的软件包列表(“冻结”)。 这也是通常称为需求 根据您的Python环境(无论是虚拟还是一个全球性),PIP将创建一个文件,列出一个简单的命令安装的所有软件包。

创建新列表(“冻结”):

注:此命令将在当前工作目录中输出的文件。

 # Example: pip freeze > [file name.ext]
 # Let's list all the packages currently installed
 pip freeze > package_list.txt

在模板顶部创建列表(“冻结”):

注:此命令将在当前工作目录中输出的文件。

 # Example: pip freeze -r [existing file.ext] > [filename.ext]
 # Let's append new packages installed after the last freeze
 pip freeze package_list.txt > package_list_new.txt

使用* pip从列表安装所有软件包

当您正在开发的应用-最好是在一个虚拟的环境-你将拥有所有安装有它的依赖( 需要包 )的。 冻结已经提取他们的名单后,你可以让他们与安装再次进行安装。

从列表安装所有软件包(“冻结”):

 # Example: pip install -r [file name.ext]
 # Let's install back all the packages from the previous example
 pip install -r package_list_new.txt

一个彻底的virtualenv操作方法

让我们确定究竟是virtualenv中以及它派上用场的情况开始。

virtualenv:

在Python的世界中, 环境是它包含一个Python项目(应用程序),以便需要有组织,孤立的方式运行一切文件夹(目录)。 当它被启动,它会自动带有自己的Python解释器-用于创建它的副本之一-沿着它自己的点子

有许多的那VIRTUALENV解决了问题:

  • 为Python项目创建一个新的,隔离的环境
  • 能够下载包而不需要管理员/ sudo权限
  • 轻松打包应用程序
  • 创建依赖的名单属于与PIP创建一个单一的项目
  • 轻松恢复使用需求文件的依赖与PIP创建
  • 为跨系统的可移植性

使用的virtualenv是与Python项目工作,无论你可能多少是忙, 推荐方式。 它是非常容易使用和一个优秀的工具,在你的一次性。 PIP加上它确实没有奇迹。

我们将与安装的virtualenv系统启动。

安装virtualenv

为了安装virtualenv中 ,我们将要在PIP呼救。 我们将把它安装为一个全局可用的包,供Python解释器运行。

有两种方法来获取应用程序。 您将能够获得的版本取决于您选择的一个。

最简单的方法是使用PIP来搜索,下载和安装。 这可能不是为您提供最新的稳定版本。

下载的virtualenv使用PIP:

 # Example: [sudo] pip install virtualenv
 sudo pip install virtualenv

下载使用curl最新的可用之一:

virtualenv中的最新的版本是1.11.X

 # Example: [sudo] pip install [github repo]/[version]
 sudo pip install https://github.com/pypa/virtualenv/tarball/1.1.X

使用的virtualenv

使用这个工具获得由它来创建一个文件夹,包含Python解释器和PIP的副本。 此后,为了与它的工作,我们需要,可以指定翻译的位置,或activate它。

在虚拟环境中使用解释器安装的所有应用程序将是该位置内的位置。

当您使用PIP创建它们的列表,只有文件夹内的人会被编译成一个文件。

记住:当你完成一个环境中工作,切换到另一个之前-或在全球范围内安装了一个工作-你需要确保deactivate它。

创建/启动一个虚拟环境 (的virtualenv)

使用用于运行它的相同解释器创建环境:

 # Example: virtualenv [folder (env.) name]
 # Let's create an environment called *my_app*
 virtualenv my_app

使用自定义Python解释器创建环境:

 # Example: virtualenv --python=[loc/to/python/] [env. name]
 virtualenv --python=/opt/python-3.3/bin/python my_app

激活虚拟环境

 # Example: source [env. name]/bin/activate
 # Let's activate the Python environment we just created
 source my_app/bin/activate

虚拟环境下不激活工作

由于各种原因,您可能在使用前选择不激活环境。 这为您运行的命令带来了更多的灵活性,但是,您需要确保每次都定位正确的解释器。

 # Example: [env. name]/bin/python [arguments]
 my_app/bin/python python_script.py

使用无需激活环境内的安装点子

 # Example: [env. name]/bin/pip [command] [arguements]
 # Let's install requests library without activating the env.
 my_app/bin/pip install requests

停用虚拟环境

 # Example: deactivate
 # Let's deactivate the environment from earlier
 deactivate 
:提交OS Tezer
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏